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