Skip to content
Merged
19 changes: 14 additions & 5 deletions synthtool/gcp/templates/python_library/noxfile.py.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

from __future__ import absolute_import
import os
import pathlib
import shutil

import nox
Expand All @@ -30,6 +31,8 @@ DEFAULT_PYTHON_VERSION="{{ default_python_version }}"
SYSTEM_TEST_PYTHON_VERSIONS=[{% for v in system_test_python_versions %}"{{v}}"{% if not loop.last %},{% endif %}{% endfor %}]
UNIT_TEST_PYTHON_VERSIONS=[{% for v in unit_test_python_versions %}"{{v}}"{% if not loop.last %},{% endif %}{% endfor %}]

CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()

@nox.session(python=DEFAULT_PYTHON_VERSION)
def lint(session):
"""Run linters.
Expand Down Expand Up @@ -73,11 +76,14 @@ def lint_setup_py(session):
def default(session):
# Install all test dependencies, then install this package in-place.

constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
{%- if microgenerator %}
session.install("asyncmock", "pytest-asyncio")
session.install("asyncmock", "pytest-asyncio", "-c", constraints_path)
{% endif %}
session.install("mock", "pytest", "pytest-cov", {% for d in unit_test_external_dependencies %}"{{d}}"{% if not loop.last %},{% endif %}{% endfor %})
session.install("-e", ".")
session.install("mock", "pytest", "pytest-cov"{% for d in unit_test_external_dependencies %}, "{{d}}"{% endfor %}, "-c", constraints_path)
session.install("-e", ".", "-c", constraints_path)
{% for dependency in unit_test_local_dependencies %}session.install("-e", "{{dependency}}"){% endfor %}
{% for dependency in unit_test_dependencies %}session.install("-e", "{{dependency}}"){% endfor %}

Expand All @@ -104,6 +110,9 @@ def unit(session):
@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)
def system(session):
"""Run the system test suite."""
constraints_path = str(
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
)
system_test_path = os.path.join("tests", "system.py")
system_test_folder_path = os.path.join("tests", "system")

Expand All @@ -125,12 +134,12 @@ def system(session):

# Install all test dependencies, then install this package into the
# virtualenv's dist-packages.
session.install("mock", "pytest", "google-cloud-testutils", {% for d in system_test_external_dependencies %}"{{d}}"{% if not loop.last %},{% endif %}{% endfor %})
session.install("mock", "pytest", "google-cloud-testutils"{% for d in system_test_external_dependencies %}, "{{d}}"{% endfor %}, "-c", constraints_path)

{%- if system_test_local_dependencies %}
session.install("-e", {% for d in system_test_local_dependencies %}"{{d}}"{% if not loop.last %},{% endif %}{% endfor %})
{%- endif %}
session.install("-e", ".")
session.install("-e", ".", "-c", constraints_path)


# Run py.test against the system tests.
Expand Down