diff --git a/gcloud/datastore/connection.py b/gcloud/datastore/connection.py index 0810d3303b26..d949b696b88d 100644 --- a/gcloud/datastore/connection.py +++ b/gcloud/datastore/connection.py @@ -56,8 +56,12 @@ class Connection(connection.Connection): def __init__(self, credentials=None, http=None, api_base_url=None): super(Connection, self).__init__(credentials=credentials, http=http) if api_base_url is None: - api_base_url = os.getenv(GCD_HOST, - self.__class__.API_BASE_URL) + try: + # gcd.sh has /datastore/ in the path still since it supports + # v1beta2 and v1beta3 simultaneously. + api_base_url = '%s/datastore' % (os.environ[GCD_HOST],) + except KeyError: + api_base_url = self.__class__.API_BASE_URL self.api_base_url = api_base_url def _request(self, project, method, data): diff --git a/gcloud/datastore/test_connection.py b/gcloud/datastore/test_connection.py index ab8beacc24e9..f7a036bd4796 100644 --- a/gcloud/datastore/test_connection.py +++ b/gcloud/datastore/test_connection.py @@ -57,14 +57,14 @@ def test_custom_url_from_env(self): from gcloud.connection import API_BASE_URL from gcloud.environment_vars import GCD_HOST - HOST = object() + HOST = 'CURR_HOST' fake_environ = {GCD_HOST: HOST} - with _Monkey(os, getenv=fake_environ.get): + with _Monkey(os, environ=fake_environ): conn = self._makeOne() self.assertNotEqual(conn.api_base_url, API_BASE_URL) - self.assertEqual(conn.api_base_url, HOST) + self.assertEqual(conn.api_base_url, HOST + '/datastore') def test_custom_url_from_constructor(self): from gcloud.connection import API_BASE_URL @@ -84,7 +84,7 @@ def test_custom_url_constructor_and_env(self): HOST2 = object() fake_environ = {GCD_HOST: HOST1} - with _Monkey(os, getenv=fake_environ.get): + with _Monkey(os, environ=fake_environ): conn = self._makeOne(api_base_url=HOST2) self.assertNotEqual(conn.api_base_url, API_BASE_URL)