Skip to content

Commit bb6433f

Browse files
gcf-owl-bot[bot]parthea
authored andcommitted
chore: Adding support for pytest-xdist and pytest-parallel (#349)
Source-Link: googleapis/synthtool@82f5cb2 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:5d8da01438ece4021d135433f2cf3227aa39ef0eaccc941d62aa35e6902832ae Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com>
1 parent 9500f68 commit bb6433f

File tree

2 files changed

+92
-68
lines changed

2 files changed

+92
-68
lines changed

translation/samples/snippets/hybrid_glossaries/noxfile.py

+46-34
Original file line numberDiff line numberDiff line change
@@ -188,42 +188,54 @@ def _session_tests(
188188
# check for presence of tests
189189
test_list = glob.glob("*_test.py") + glob.glob("test_*.py")
190190
test_list.extend(glob.glob("tests"))
191+
191192
if len(test_list) == 0:
192193
print("No tests found, skipping directory.")
193-
else:
194-
if TEST_CONFIG["pip_version_override"]:
195-
pip_version = TEST_CONFIG["pip_version_override"]
196-
session.install(f"pip=={pip_version}")
197-
"""Runs py.test for a particular project."""
198-
if os.path.exists("requirements.txt"):
199-
if os.path.exists("constraints.txt"):
200-
session.install("-r", "requirements.txt", "-c", "constraints.txt")
201-
else:
202-
session.install("-r", "requirements.txt")
203-
204-
if os.path.exists("requirements-test.txt"):
205-
if os.path.exists("constraints-test.txt"):
206-
session.install(
207-
"-r", "requirements-test.txt", "-c", "constraints-test.txt"
208-
)
209-
else:
210-
session.install("-r", "requirements-test.txt")
211-
212-
if INSTALL_LIBRARY_FROM_SOURCE:
213-
session.install("-e", _get_repo_root())
214-
215-
if post_install:
216-
post_install(session)
217-
218-
session.run(
219-
"pytest",
220-
*(PYTEST_COMMON_ARGS + session.posargs),
221-
# Pytest will return 5 when no tests are collected. This can happen
222-
# on travis where slow and flaky tests are excluded.
223-
# See http://doc.pytest.org/en/latest/_modules/_pytest/main.html
224-
success_codes=[0, 5],
225-
env=get_pytest_env_vars(),
226-
)
194+
return
195+
196+
if TEST_CONFIG["pip_version_override"]:
197+
pip_version = TEST_CONFIG["pip_version_override"]
198+
session.install(f"pip=={pip_version}")
199+
"""Runs py.test for a particular project."""
200+
concurrent_args = []
201+
if os.path.exists("requirements.txt"):
202+
if os.path.exists("constraints.txt"):
203+
session.install("-r", "requirements.txt", "-c", "constraints.txt")
204+
else:
205+
session.install("-r", "requirements.txt")
206+
with open("requirements.txt") as rfile:
207+
packages = rfile.read()
208+
209+
if os.path.exists("requirements-test.txt"):
210+
if os.path.exists("constraints-test.txt"):
211+
session.install(
212+
"-r", "requirements-test.txt", "-c", "constraints-test.txt"
213+
)
214+
else:
215+
session.install("-r", "requirements-test.txt")
216+
with open("requirements-test.txt") as rtfile:
217+
packages += rtfile.read()
218+
219+
if INSTALL_LIBRARY_FROM_SOURCE:
220+
session.install("-e", _get_repo_root())
221+
222+
if post_install:
223+
post_install(session)
224+
225+
if "pytest-parallel" in packages:
226+
concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto'])
227+
elif "pytest-xdist" in packages:
228+
concurrent_args.extend(['-n', 'auto'])
229+
230+
session.run(
231+
"pytest",
232+
*(PYTEST_COMMON_ARGS + session.posargs + concurrent_args),
233+
# Pytest will return 5 when no tests are collected. This can happen
234+
# on travis where slow and flaky tests are excluded.
235+
# See http://doc.pytest.org/en/latest/_modules/_pytest/main.html
236+
success_codes=[0, 5],
237+
env=get_pytest_env_vars(),
238+
)
227239

228240

229241
@nox.session(python=ALL_VERSIONS)

translation/samples/snippets/noxfile.py

+46-34
Original file line numberDiff line numberDiff line change
@@ -188,42 +188,54 @@ def _session_tests(
188188
# check for presence of tests
189189
test_list = glob.glob("*_test.py") + glob.glob("test_*.py")
190190
test_list.extend(glob.glob("tests"))
191+
191192
if len(test_list) == 0:
192193
print("No tests found, skipping directory.")
193-
else:
194-
if TEST_CONFIG["pip_version_override"]:
195-
pip_version = TEST_CONFIG["pip_version_override"]
196-
session.install(f"pip=={pip_version}")
197-
"""Runs py.test for a particular project."""
198-
if os.path.exists("requirements.txt"):
199-
if os.path.exists("constraints.txt"):
200-
session.install("-r", "requirements.txt", "-c", "constraints.txt")
201-
else:
202-
session.install("-r", "requirements.txt")
203-
204-
if os.path.exists("requirements-test.txt"):
205-
if os.path.exists("constraints-test.txt"):
206-
session.install(
207-
"-r", "requirements-test.txt", "-c", "constraints-test.txt"
208-
)
209-
else:
210-
session.install("-r", "requirements-test.txt")
211-
212-
if INSTALL_LIBRARY_FROM_SOURCE:
213-
session.install("-e", _get_repo_root())
214-
215-
if post_install:
216-
post_install(session)
217-
218-
session.run(
219-
"pytest",
220-
*(PYTEST_COMMON_ARGS + session.posargs),
221-
# Pytest will return 5 when no tests are collected. This can happen
222-
# on travis where slow and flaky tests are excluded.
223-
# See http://doc.pytest.org/en/latest/_modules/_pytest/main.html
224-
success_codes=[0, 5],
225-
env=get_pytest_env_vars(),
226-
)
194+
return
195+
196+
if TEST_CONFIG["pip_version_override"]:
197+
pip_version = TEST_CONFIG["pip_version_override"]
198+
session.install(f"pip=={pip_version}")
199+
"""Runs py.test for a particular project."""
200+
concurrent_args = []
201+
if os.path.exists("requirements.txt"):
202+
if os.path.exists("constraints.txt"):
203+
session.install("-r", "requirements.txt", "-c", "constraints.txt")
204+
else:
205+
session.install("-r", "requirements.txt")
206+
with open("requirements.txt") as rfile:
207+
packages = rfile.read()
208+
209+
if os.path.exists("requirements-test.txt"):
210+
if os.path.exists("constraints-test.txt"):
211+
session.install(
212+
"-r", "requirements-test.txt", "-c", "constraints-test.txt"
213+
)
214+
else:
215+
session.install("-r", "requirements-test.txt")
216+
with open("requirements-test.txt") as rtfile:
217+
packages += rtfile.read()
218+
219+
if INSTALL_LIBRARY_FROM_SOURCE:
220+
session.install("-e", _get_repo_root())
221+
222+
if post_install:
223+
post_install(session)
224+
225+
if "pytest-parallel" in packages:
226+
concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto'])
227+
elif "pytest-xdist" in packages:
228+
concurrent_args.extend(['-n', 'auto'])
229+
230+
session.run(
231+
"pytest",
232+
*(PYTEST_COMMON_ARGS + session.posargs + concurrent_args),
233+
# Pytest will return 5 when no tests are collected. This can happen
234+
# on travis where slow and flaky tests are excluded.
235+
# See http://doc.pytest.org/en/latest/_modules/_pytest/main.html
236+
success_codes=[0, 5],
237+
env=get_pytest_env_vars(),
238+
)
227239

228240

229241
@nox.session(python=ALL_VERSIONS)

0 commit comments

Comments
 (0)