From 03af64b223a2fbe83a79912bd3527dab66f46dff Mon Sep 17 00:00:00 2001 From: Takashi Matsuo Date: Thu, 14 May 2015 20:25:26 -0700 Subject: [PATCH 1/3] Added GCLOUD_* envvar to passenv section. Fixes #17 --- README.md | 4 +++- tox.ini | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 50c7c2f0f4d6..a4f339926121 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,9 @@ Google Cloud SDK installation path. $ virtualenv -p python2.7 --no-site-packages /some/where $ source /some/where/bin/activate $ pip install tox - $ env PYTHONPATH=${GCLOUD}/platform/google_appengine tox + $ export PYTHONPATH=${GCLOUD}/platform/google_appengine + $ export GOOGLE_APPLICATION_CREDENTIALS=your-service-account-json-file + $ tox ## Licensing diff --git a/tox.ini b/tox.ini index 10685b6ac31b..43d03296e722 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ skipsdist = True envlist = {py27}-{nosetest,pep8}, cover [testenv] -passenv = PYTHONPATH PROJECT_ID TRAVIS* +passenv = PYTHONPATH GOOGLE_* GCLOUD_* PROJECT_ID TRAVIS* basepython = cover,py27: python2.7 deps = @@ -17,8 +17,6 @@ deps = cover: coverage cover: coveralls cover: nosexcover -setenv = - GOOGLE_APPLICATION_CREDENTIALS=python-docs-samples.json commands = cover: nosetests --with-gae --with-xunit --with-xcoverage \ cover: --cover-tests --cover-branches --cover-min-percentage=70 \ From 2299bfa2a290b1eca68f90f43db0fe563418456f Mon Sep 17 00:00:00 2001 From: Takashi Matsuo Date: Fri, 15 May 2015 08:57:09 -0700 Subject: [PATCH 2/3] Introduced TEST_PROJECT_ID and TEST_BUCKET_NAME envvars. --- README.md | 2 ++ bigquery/test/base_test.py | 18 ++++++++++++++++-- resources/constants.json | 5 ++--- tox.ini | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a4f339926121..4ac43111e366 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ Google Cloud SDK installation path. $ pip install tox $ export PYTHONPATH=${GCLOUD}/platform/google_appengine $ export GOOGLE_APPLICATION_CREDENTIALS=your-service-account-json-file + $ export TEST_PROJECT_ID={YOUR_PROJECT_ID} + $ export TEST_BUCKET={YOUR_BUCKET_NAME} $ tox ## Licensing diff --git a/bigquery/test/base_test.py b/bigquery/test/base_test.py index 9765b23a9c41..175546d9d4e5 100644 --- a/bigquery/test/base_test.py +++ b/bigquery/test/base_test.py @@ -18,18 +18,32 @@ from bigquery.test import RESOURCE_PATH +BUCKET_NAME_ENV = 'TEST_BUCKET_NAME' +PROJECT_ID_ENV = 'TEST_PROJECT_ID' + + class BaseBigqueryTest(unittest.TestCase): def setUp(self): - # A hack to prevent get_application_default to choose App Engine route. + # A hack to prevent get_application_default from going GAE route. self._server_software_org = os.environ.get('SERVER_SOFTWARE') os.environ['SERVER_SOFTWARE'] = '' - + test_bucket_name = os.environ.get(BUCKET_NAME_ENV, '') + test_project_id = os.environ.get(PROJECT_ID_ENV, '') + if not test_project_id or not test_bucket_name: + raise Exception('You need to define an env var "%s" and "%s" to ' + 'run the test.' + % (PROJECT_ID_ENV, BUCKET_NAME_ENV)) with open( os.path.join(RESOURCE_PATH, 'constants.json'), 'r') as constants_file: self.constants = json.load(constants_file) + self.constants['projectId'] = test_project_id + self.constants['cloudStorageInputURI'] = ( + self.constants['cloudStorageInputURI'] % test_bucket_name) + self.constants['cloudStorageOutputURI'] = ( + self.constants['cloudStorageOutputURI'] % test_bucket_name) def tearDown(self): os.environ['SERVER_SOFTWARE'] = self._server_software_org diff --git a/resources/constants.json b/resources/constants.json index 66b2964baf14..dd76bb905c9e 100644 --- a/resources/constants.json +++ b/resources/constants.json @@ -1,9 +1,8 @@ { - "projectId": "bigquery-devrel-samples", "datasetId": "test_dataset", "currentTableId": "test_table", "newTableId": "test_table2", - "cloudStorageInputURI": "gs://bigquery-devrel-samples-bucket/data.csv", - "cloudStorageOutputURI": "gs://bigquery-devrel-samples-bucket/output.csv", + "cloudStorageInputURI": "gs://%s/data.csv", + "cloudStorageOutputURI": "gs://%s/output.csv", "query": "SELECT corpus FROM publicdata:samples.shakespeare GROUP BY corpus;" } diff --git a/tox.ini b/tox.ini index 43d03296e722..49c4765ffdf6 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ skipsdist = True envlist = {py27}-{nosetest,pep8}, cover [testenv] -passenv = PYTHONPATH GOOGLE_* GCLOUD_* PROJECT_ID TRAVIS* +passenv = PYTHONPATH GOOGLE_* GCLOUD_* TEST_* TRAVIS* basepython = cover,py27: python2.7 deps = From 4887b09cf8a9cf0a8f1e78d55f7480d6b37dc06b Mon Sep 17 00:00:00 2001 From: Takashi Matsuo Date: Fri, 15 May 2015 09:00:45 -0700 Subject: [PATCH 3/3] Fixed a broken travis build. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 74d589a6008e..23846b309839 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ cache: directories: - $HOME/gcloud/ env: - - PATH=$PATH:$HOME/gcloud/google-cloud-sdk/bin GOOGLE_APPLICATION_CREDENTIALS=$TRAVIS_BUILD_DIR/python-docs-samples.json PYTHONPATH=${HOME}/gcloud/google-cloud-sdk/platform/google_appengine #Other environment variables on same line + - PATH=$PATH:$HOME/gcloud/google-cloud-sdk/bin GOOGLE_APPLICATION_CREDENTIALS=$TRAVIS_BUILD_DIR/python-docs-samples.json PYTHONPATH=${HOME}/gcloud/google-cloud-sdk/platform/google_appengine TEST_BUCKET_NAME=bigquery-devrel-samples-bucket TEST_PROJECT_ID=bigquery-devrel-samples #Other environment variables on same line before_install: #ENCRYPT YOUR PRIVATE KEY (If you need authentication)