You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.1 KiB
47 lines
1.1 KiB
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) |