Skip to content

Commit a5f2daf

Browse files
author
Jon Wayne Parrott
committed
Adding gae test session
1 parent b928bb1 commit a5f2daf

2 files changed

Lines changed: 70 additions & 27 deletions

File tree

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ env:
1414
- PATH=${PATH}:${HOME}/gcloud/google-cloud-sdk/bin
1515
- GOOGLE_APPLICATION_CREDENTIALS=${TRAVIS_BUILD_DIR}/testing/resources/service-account.json
1616
- GOOGLE_CLIENT_SECRETS=${TRAVIS_BUILD_DIR}/testing/resources/client-secrets.json
17-
- GAE_PYTHONPATH=${HOME}/.cache/google_appengine
1817
- GAE_ROOT=${HOME}/.cache/
1918
- secure: Orp9Et2TIwCG/Hf59aa0NUDF1pNcwcS4TFulXX175918cFREOzf/cNZNg+Ui585ZRFjbifZdc858tVuCVd8XlxQPXQgp7bwB7nXs3lby3LYg4+HD83Gaz7KOWxRLWVor6IVn8OxeCzwl6fJkdmffsTTO9csC4yZ7izHr+u7hiO4=
2019
before_install:

nox.py

Lines changed: 70 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,55 @@
11
import fnmatch
22
import os
3+
import tempfile
34

45
import nox
56

67
REPO_TOOLS_REQ =\
78
'git+https://github.com/GoogleCloudPlatform/python-repo-tools.git'
89

10+
COMMON_PYTEST_ARGS = [
11+
'-x', '--no-success-flaky-report', '--cov', '--cov-config',
12+
'.coveragerc', '--cov-append', '--cov-report=']
13+
14+
SAMPLES = [
15+
'bigquery/api',
16+
'blog/introduction_to_data_models_in_cloud_datastore',
17+
'cloud_logging/api',
18+
'compute/api',
19+
'compute/autoscaler/demo',
20+
'datastore/api',
21+
'managed_vms/cloudsql',
22+
'managed_vms/datastore',
23+
'managed_vms/disk',
24+
'managed_vms/extending_runtime',
25+
'managed_vms/hello_world',
26+
'managed_vms/hello_world_compat',
27+
'managed_vms/memcache',
28+
'managed_vms/pubsub',
29+
'managed_vms/static_files',
30+
'managed_vms/storage',
31+
'monitoring/api',
32+
'storage/api',
33+
]
34+
35+
GAE_SAMPLES = [
36+
'appengine/app_identity/signing',
37+
'appengine/bigquery',
38+
'appengine/blobstore',
39+
'appengine/cloudsql',
40+
'appengine/images',
41+
'appengine/localtesting',
42+
'appengine/logging/reading_logs',
43+
'appengine/logging/writing_logs',
44+
'appengine/mailgun',
45+
'appengine/memcache/guestbook',
46+
'appengine/multitenancy',
47+
'appengine/ndb/modeling',
48+
'appengine/ndb/overview',
49+
'appengine/ndb/transactions',
50+
'appengine/storage',
51+
]
52+
953

1054
def session_lint(session):
1155
session.install('flake8', 'flake8-import-order')
@@ -36,32 +80,6 @@ def session_reqcheck(session):
3680
session.run('gcprepotools', command, reqfile)
3781

3882

39-
COMMON_PYTEST_ARGS = [
40-
'-x', '--no-success-flaky-report', '--cov', '--cov-config',
41-
'.coveragerc', '--cov-append', '--cov-report=']
42-
43-
SAMPLES = [
44-
'bigquery/api',
45-
'blog/introduction_to_data_models_in_cloud_datastore',
46-
'cloud_logging/api',
47-
'compute/api',
48-
'compute/autoscaler/demo',
49-
'datastore/api',
50-
'managed_vms/cloudsql',
51-
'managed_vms/datastore',
52-
'managed_vms/disk',
53-
'managed_vms/extending_runtime',
54-
'managed_vms/hello_world',
55-
'managed_vms/hello_world_compat',
56-
'managed_vms/memcache',
57-
'managed_vms/pubsub',
58-
'managed_vms/static_files',
59-
'managed_vms/storage',
60-
'monitoring/api',
61-
'storage/api',
62-
]
63-
64-
6583
@nox.parametrize('interpreter', ['python2.7', 'python3.4'])
6684
def session_tests(session, interpreter, extra_pytest_args=None):
6785
session.interpreter = interpreter
@@ -77,7 +95,33 @@ def session_tests(session, interpreter, extra_pytest_args=None):
7795
success_codes=[0, 5]) # Treat no test collected as success.
7896

7997

98+
def session_gae(session, extra_pytest_args=None):
99+
session.interpreter = 'python2.7'
100+
session.install(REPO_TOOLS_REQ)
101+
session.install('-r', 'requirements-python2.7-dev.txt')
102+
103+
# Install the app engine sdk and setup import paths.
104+
gae_root = os.environ.get('GAE_ROOT', tempfile.gettempdir())
105+
session.env['PYTHONPATH'] = os.path.join(gae_root, 'google_appengine')
106+
session.run('gcprepotools', 'download-appengine-sdk', gae_root)
107+
108+
# Create a lib directory to prevent the GAE vendor library from
109+
# complaining.
110+
if not os.path.exists('lib'):
111+
os.makedirs('lib')
112+
113+
pytest_args = COMMON_PYTEST_ARGS + (extra_pytest_args or [])
114+
115+
for sample in (session.posargs or GAE_SAMPLES):
116+
session.run(
117+
'py.test', sample,
118+
*pytest_args,
119+
success_codes=[0, 5]) # Treat no test collected as success.
120+
121+
80122
def session_travis(session):
81123
"""On travis, just run with python3.4 and don't run slow or flaky tests."""
82124
session_tests(
83125
session, 'python3.4', extra_pytest_args=['-m not slow and not flaky'])
126+
session_gae(
127+
session, extra_pytest_args=['-m not slow and not flaky'])

0 commit comments

Comments
 (0)