mirror of
https://github.com/wassname/cookiecutter-data-science.git
synced 2026-09-09 11:20:05 +08:00
Expand Setup Tests (#131)
* change tests to use class scope and test user inputs * name was backwards * name was backwards * compat for mac and linux
This commit is contained in:
committed by
Isaac Slavitt
parent
a2798e84da
commit
d40ffb462d
@@ -0,0 +1,47 @@
|
||||
import sys
|
||||
import pytest
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from cookiecutter import main
|
||||
|
||||
CCDS_ROOT = Path(__file__).parents[1].resolve()
|
||||
|
||||
args = {
|
||||
'project_name': 'DrivenData',
|
||||
'author_name': 'DrivenData',
|
||||
'open_source_license': 'BSD-3-Clause',
|
||||
'python_interpreter': 'python'
|
||||
}
|
||||
|
||||
|
||||
def system_check(basename):
|
||||
platform = sys.platform
|
||||
if 'linux' in platform:
|
||||
basename = basename.lower()
|
||||
return basename
|
||||
|
||||
|
||||
@pytest.fixture(scope='class', params=[{}, args])
|
||||
def default_baked_project(tmpdir_factory, request):
|
||||
temp = tmpdir_factory.mktemp('data-project')
|
||||
out_dir = Path(temp).resolve()
|
||||
|
||||
pytest.param = request.param
|
||||
main.cookiecutter(
|
||||
str(CCDS_ROOT),
|
||||
no_input=True,
|
||||
extra_context=pytest.param,
|
||||
output_dir=out_dir
|
||||
)
|
||||
|
||||
pn = pytest.param.get('project_name') or 'project_name'
|
||||
|
||||
# project name gets converted to lower case on Linux but not Mac
|
||||
pn = system_check(pn)
|
||||
|
||||
proj = out_dir / pn
|
||||
request.cls.path = proj
|
||||
yield
|
||||
|
||||
# cleanup after
|
||||
shutil.rmtree(out_dir)
|
||||
Reference in New Issue
Block a user