33from sys import platform
44from typing import Sequence
55
6+ import pytest
7+
68
79def test_project_folder (cookies ):
810 project = cookies .bake ()
@@ -21,7 +23,8 @@ def run(args: Sequence[str], dirpath: os.PathLike) -> subprocess.CompletedProces
2123 encoding = "utf-8" )
2224
2325
24- def test_pytest (cookies ):
26+ @pytest .fixture
27+ def baked_with_development_dependencies (cookies ):
2528 result = cookies .bake ()
2629 env_output = run (['python3' , '-m' , 'venv' , 'env' ], result .project )
2730 assert env_output .returncode == 0
@@ -30,9 +33,29 @@ def test_pytest(cookies):
3033 assert latest_pip_output .returncode == 0
3134 pip_output = run ([f'{ env_bin } pip3' , 'install' , '--editable' , '.[dev]' ], result .project )
3235 assert pip_output .returncode == 0
36+ return result .project , env_bin
37+
3338
34- pytest_output = run ([f'{ env_bin } pytest' ], result .project )
39+ def test_pytest (baked_with_development_dependencies ):
40+ project_dir , env_bin = baked_with_development_dependencies
41+ pytest_output = run ([f'{ env_bin } pytest' ], project_dir )
3542 assert pytest_output .returncode == 0
36- assert '== 3 passed in' in pytest_output .stdout
37- assert (result .project / 'coverage.xml' ).exists ()
38- assert (result .project / 'htmlcov/index.html' ).exists ()
43+ assert '== 3 passed in' in pytest_output .stdout
44+ assert (project_dir / 'coverage.xml' ).exists ()
45+ assert (project_dir / 'htmlcov/index.html' ).exists ()
46+
47+
48+ def test_subpackage (baked_with_development_dependencies ):
49+ project_dir , env_bin = baked_with_development_dependencies
50+ subpackage = (project_dir / 'my_python_package' / 'mysub' )
51+ subpackage .mkdir ()
52+ (subpackage / '__init__.py' ).write_text ('FOO = "bar"' , encoding = "utf-8" )
53+
54+ subsubpackage = (project_dir / 'my_python_package' / 'mysub' / 'mysub2' )
55+ subsubpackage .mkdir ()
56+ (subsubpackage / '__init__.py' ).write_text ('FOO = "bar"' , encoding = "utf-8" )
57+
58+ build_output = run ([f'{ env_bin } python3' , 'setup.py' , 'build' ], project_dir )
59+ assert build_output .returncode == 0
60+ assert (project_dir / 'build' / 'lib' / 'my_python_package' / 'mysub' / '__init__.py' ).exists ()
61+ assert (project_dir / 'build' / 'lib' / 'my_python_package' / 'mysub' / 'mysub2' / '__init__.py' ).exists ()
0 commit comments