11import os
22import subprocess
3+ import sys
34from sys import platform
45from typing import Sequence
56
@@ -107,6 +108,8 @@ def test_generate_api_docs(baked_with_development_dependencies, project_env_bin_
107108 assert (project_dir / 'docs' / '_build' / 'html' / 'index.html' ).exists ()
108109
109110
111+ @pytest .mark .skipif (sys .version_info < (3 , 9 ), reason =
112+ "requires python 3.9 or higher, see https://github.com/NLeSC/python-template/pull/347#issuecomment-1710684574" )
110113def test_coverage_api_docs (baked_with_development_dependencies , project_env_bin_dir ):
111114 project_dir = baked_with_development_dependencies
112115 bin_dir = project_env_bin_dir
@@ -116,9 +119,28 @@ def test_coverage_api_docs(baked_with_development_dependencies, project_env_bin_
116119 assert 'build succeeded' in result .stdout
117120 coverage_file = project_dir / 'docs' / '_build' / 'coverage' / 'python.txt'
118121 coverage_file_lines = coverage_file .read_text ('utf8' ).splitlines ()
119- expected = ['Undocumented Python objects' ,
120- '===========================' ]
121- assert coverage_file_lines == expected
122+ # Coverage file lines should look globally like:
123+ # ['Undocumented Python objects',
124+ # '===========================',
125+ # '',
126+ # 'Statistics',
127+ # '----------',
128+ # '',
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+ # '+-----------------------------+----------+--------------+',
138+ # ''
139+ # ]
140+ # 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
122144
123145
124146def test_doctest_api_docs (baked_with_development_dependencies , project_env_bin_dir ):
0 commit comments