|
14 | 14 |
|
15 | 15 | from __future__ import print_function |
16 | 16 |
|
| 17 | +import glob |
17 | 18 | import os |
18 | 19 | from pathlib import Path |
19 | 20 | import sys |
@@ -182,37 +183,44 @@ def blacken(session: nox.sessions.Session) -> None: |
182 | 183 | def _session_tests( |
183 | 184 | session: nox.sessions.Session, post_install: Callable = None |
184 | 185 | ) -> None: |
185 | | - if TEST_CONFIG["pip_version_override"]: |
186 | | - pip_version = TEST_CONFIG["pip_version_override"] |
187 | | - session.install(f"pip=={pip_version}") |
188 | | - """Runs py.test for a particular project.""" |
189 | | - if os.path.exists("requirements.txt"): |
190 | | - if os.path.exists("constraints.txt"): |
191 | | - session.install("-r", "requirements.txt", "-c", "constraints.txt") |
192 | | - else: |
193 | | - session.install("-r", "requirements.txt") |
194 | | - |
195 | | - if os.path.exists("requirements-test.txt"): |
196 | | - if os.path.exists("constraints-test.txt"): |
197 | | - session.install("-r", "requirements-test.txt", "-c", "constraints-test.txt") |
198 | | - else: |
199 | | - session.install("-r", "requirements-test.txt") |
200 | | - |
201 | | - if INSTALL_LIBRARY_FROM_SOURCE: |
202 | | - session.install("-e", _get_repo_root()) |
203 | | - |
204 | | - if post_install: |
205 | | - post_install(session) |
206 | | - |
207 | | - session.run( |
208 | | - "pytest", |
209 | | - *(PYTEST_COMMON_ARGS + session.posargs), |
210 | | - # Pytest will return 5 when no tests are collected. This can happen |
211 | | - # on travis where slow and flaky tests are excluded. |
212 | | - # See http://doc.pytest.org/en/latest/_modules/_pytest/main.html |
213 | | - success_codes=[0, 5], |
214 | | - env=get_pytest_env_vars(), |
215 | | - ) |
| 186 | + # check for presence of tests |
| 187 | + test_list = glob.glob("*_test.py") + glob.glob("test_*.py") |
| 188 | + if len(test_list) == 0: |
| 189 | + print("No tests found, skipping directory.") |
| 190 | + else: |
| 191 | + if TEST_CONFIG["pip_version_override"]: |
| 192 | + pip_version = TEST_CONFIG["pip_version_override"] |
| 193 | + session.install(f"pip=={pip_version}") |
| 194 | + """Runs py.test for a particular project.""" |
| 195 | + if os.path.exists("requirements.txt"): |
| 196 | + if os.path.exists("constraints.txt"): |
| 197 | + session.install("-r", "requirements.txt", "-c", "constraints.txt") |
| 198 | + else: |
| 199 | + session.install("-r", "requirements.txt") |
| 200 | + |
| 201 | + if os.path.exists("requirements-test.txt"): |
| 202 | + if os.path.exists("constraints-test.txt"): |
| 203 | + session.install( |
| 204 | + "-r", "requirements-test.txt", "-c", "constraints-test.txt" |
| 205 | + ) |
| 206 | + else: |
| 207 | + session.install("-r", "requirements-test.txt") |
| 208 | + |
| 209 | + if INSTALL_LIBRARY_FROM_SOURCE: |
| 210 | + session.install("-e", _get_repo_root()) |
| 211 | + |
| 212 | + if post_install: |
| 213 | + post_install(session) |
| 214 | + |
| 215 | + session.run( |
| 216 | + "pytest", |
| 217 | + *(PYTEST_COMMON_ARGS + session.posargs), |
| 218 | + # Pytest will return 5 when no tests are collected. This can happen |
| 219 | + # on travis where slow and flaky tests are excluded. |
| 220 | + # See http://doc.pytest.org/en/latest/_modules/_pytest/main.html |
| 221 | + success_codes=[0, 5], |
| 222 | + env=get_pytest_env_vars(), |
| 223 | + ) |
216 | 224 |
|
217 | 225 |
|
218 | 226 | @nox.session(python=ALL_VERSIONS) |
|
0 commit comments