Skip to content

Commit 6c38999

Browse files
bouweandelaegpbos
authored andcommitted
Re-use baked project for all tests
1 parent ebc67dd commit 6c38999

1 file changed

Lines changed: 25 additions & 20 deletions

File tree

tests/test_project.py

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ def run(args: Sequence[str], dirpath: os.PathLike) -> subprocess.CompletedProces
2929
return completed_process
3030

3131

32-
@pytest.fixture
33-
def project_env_bin_dir(tmp_path):
32+
@pytest.fixture(scope='session')
33+
def project_env_bin_dir(tmp_path_factory):
34+
tmp_path = tmp_path_factory.mktemp('venv')
3435
env_output = run(['python', '-m', 'venv', 'env'], tmp_path)
3536
assert env_output.returncode == 0
3637
bin_dir = str(tmp_path / 'env' / 'bin')
@@ -39,12 +40,12 @@ def project_env_bin_dir(tmp_path):
3940
return str(bin_dir) + os.sep
4041

4142

42-
@pytest.fixture
43-
def baked_with_development_dependencies(cookies, project_env_bin_dir):
44-
result = cookies.bake()
43+
@pytest.fixture(scope='session')
44+
def baked_with_development_dependencies(cookies_session, project_env_bin_dir):
45+
result = cookies_session.bake()
4546
assert result.exit_code == 0
4647
bin_dir = project_env_bin_dir
47-
latest_pip_output = run([f'{bin_dir}python', '-m', 'pip', 'install', '--upgrade', 'pip', 'setuptools'], result.project)
48+
latest_pip_output = run([f'{bin_dir}python', '-m', 'pip', 'install', '--upgrade', 'pip', 'setuptools'], result.project_path)
4849
assert latest_pip_output.returncode == 0
4950
pip_output = run([f'{bin_dir}python', '-m', 'pip', 'install', '--editable', '.[dev]'], result.project)
5051
assert pip_output.returncode == 0
@@ -84,11 +85,11 @@ def test_subpackage(baked_with_development_dependencies, project_env_bin_dir):
8485
bin_dir = project_env_bin_dir
8586
subpackage = (project_dir / 'my_python_package' / 'mysub')
8687
subpackage.mkdir()
87-
(subpackage / '__init__.py').write_text('FOO = "bar"', encoding="utf-8")
88+
(subpackage / '__init__.py').write_text('FOO = "bar"\n', encoding="utf-8")
8889

8990
subsubpackage = (project_dir / 'my_python_package' / 'mysub' / 'mysub2')
9091
subsubpackage.mkdir()
91-
(subsubpackage / '__init__.py').write_text('FOO = "bar"', encoding="utf-8")
92+
(subsubpackage / '__init__.py').write_text('FOO = "bar"\n', encoding="utf-8")
9293

9394
# sdist and bdist_wheel both call build command to create build/ dir
9495
# So instead of looking in distribution archives we can look in build/ dir
@@ -126,21 +127,25 @@ def test_coverage_api_docs(baked_with_development_dependencies, project_env_bin_
126127
# 'Statistics',
127128
# '----------',
128129
# '',
129-
# '+-----------------------------+----------+--------------+',
130-
# '| Module | Coverage | Undocumented |',
131-
# '+=============================+==========+==============+',
132-
# '| my_python_package | 100.00% | 0 |',
133-
# '+-----------------------------+----------+--------------+',
134-
# '| my_python_package.my_module | 100.00% | 0 |',
135-
# '+-----------------------------+----------+--------------+',
136-
# '| TOTAL | 100.00% | 0 |',
137-
# '+-----------------------------+----------+--------------+',
130+
# '+--------------------------------+----------+--------------+',
131+
# '| Module | Coverage | Undocumented |',
132+
# '+================================+==========+==============+',
133+
# '| my_python_package.my_module | 100.00% | 0 |',
134+
# '+--------------------------------+----------+--------------+',
135+
# '| my_python_package.mysub.mysub2 | 100.00% | 0 |',
136+
# '+--------------------------------+----------+--------------+',
137+
# '| my_python_package | 100.00% | 0 |',
138+
# '+--------------------------------+----------+--------------+',
139+
# '| my_python_package.mysub | 100.00% | 0 |',
140+
# '+--------------------------------+----------+--------------+',
141+
# '| TOTAL | 100.00% | 0 |',
142+
# '+--------------------------------+----------+--------------+',
138143
# ''
139144
# ]
140145
# The package coverage lines change order between runs, so we test for each data row individually:
141-
assert '| my_python_package | 100.00% | 0 |' in coverage_file_lines
142-
assert '| my_python_package.my_module | 100.00% | 0 |' in coverage_file_lines
143-
assert '| TOTAL | 100.00% | 0 |' in coverage_file_lines
146+
assert '| my_python_package | 100.00% | 0 |' in coverage_file_lines
147+
assert '| my_python_package.my_module | 100.00% | 0 |' in coverage_file_lines
148+
assert '| TOTAL | 100.00% | 0 |' in coverage_file_lines
144149

145150

146151
def test_doctest_api_docs(baked_with_development_dependencies, project_env_bin_dir):

0 commit comments

Comments
 (0)