Browse Source
* change tests to use class scope and test user inputs * name was backwards * name was backwards * compat for mac and linuxmain
dmitrypolo
6 years ago
committed by
Isaac Slavitt
3 changed files with 141 additions and 82 deletions
@ -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) |
Loading…
Reference in new issue