aboutsummaryrefslogtreecommitdiff
path: root/system_tests/noxfile.py
diff options
context:
space:
mode:
Diffstat (limited to 'system_tests/noxfile.py')
-rw-r--r--system_tests/noxfile.py51
1 files changed, 47 insertions, 4 deletions
diff --git a/system_tests/noxfile.py b/system_tests/noxfile.py
index 540727e..459b71c 100644
--- a/system_tests/noxfile.py
+++ b/system_tests/noxfile.py
@@ -171,7 +171,7 @@ def configure_cloud_sdk(session, application_default_credentials, project=False)
TEST_DEPENDENCIES_ASYNC = ["aiohttp", "pytest-asyncio", "nest-asyncio"]
TEST_DEPENDENCIES_SYNC = ["pytest", "requests", "mock"]
PYTHON_VERSIONS_ASYNC = ["3.7"]
-PYTHON_VERSIONS_SYNC = ["3.7"]
+PYTHON_VERSIONS_SYNC = ["2.7", "3.7"]
def default(session, *test_paths):
@@ -287,6 +287,50 @@ def compute_engine(session):
)
+@nox.session(python=["2.7"])
+def app_engine(session):
+ if SKIP_GAE_TEST_ENV in os.environ:
+ session.log("Skipping App Engine tests.")
+ return
+
+ session.install(LIBRARY_DIR)
+ # Unlike the default tests above, the App Engine system test require a
+ # 'real' gcloud sdk installation that is configured to deploy to an
+ # app engine project.
+ # Grab the project ID from the cloud sdk.
+ project_id = (
+ subprocess.check_output(
+ ["gcloud", "config", "list", "project", "--format", "value(core.project)"]
+ )
+ .decode("utf-8")
+ .strip()
+ )
+
+ if not project_id:
+ session.error(
+ "The Cloud SDK must be installed and configured to deploy to App " "Engine."
+ )
+
+ application_url = GAE_APP_URL_TMPL.format(GAE_TEST_APP_SERVICE, project_id)
+
+ # Vendor in the test application's dependencies
+ session.chdir(os.path.join(HERE, "system_tests_sync/app_engine_test_app"))
+ session.install(*TEST_DEPENDENCIES_SYNC)
+ session.run(
+ "pip", "install", "--target", "lib", "-r", "requirements.txt", silent=True
+ )
+
+ # Deploy the application.
+ session.run("gcloud", "app", "deploy", "-q", "app.yaml")
+
+ # Run the tests
+ session.env["TEST_APP_URL"] = application_url
+ session.chdir(HERE)
+ default(
+ session, "system_tests_sync/test_app_engine.py",
+ )
+
+
@nox.session(python=PYTHON_VERSIONS_SYNC)
def grpc(session):
session.install(LIBRARY_DIR)
@@ -339,9 +383,8 @@ def mtls_http(session):
def external_accounts(session):
session.install(
*TEST_DEPENDENCIES_SYNC,
- "google-auth",
+ LIBRARY_DIR,
"google-api-python-client",
- "enum34",
)
default(
session,
@@ -354,7 +397,7 @@ def external_accounts(session):
def downscoping(session):
session.install(
*TEST_DEPENDENCIES_SYNC,
- "google-auth",
+ LIBRARY_DIR,
"google-cloud-storage",
)
default(