8000 Overwriting user_agent in storage/datastore connection tests. · googleapis/google-cloud-python@fd08c42 · GitHub
[go: up one dir, main page]

Skip to content

Commit fd08c42

Browse files
committed
Overwriting user_agent in storage/datastore connection tests.
This prevents unnecessary HTTP requests to determine if GCE is the current environment. Also updating Test__UserAgentReifyProperty with - setUp and tearDown to make sure a fresh _UserAgentReifyProperty is associated with the Connection class in every test case - test___get___access_twice test case added to test the branches in __get__ for pre-cache and post-cache states
1 parent f2c29b4 commit fd08c42

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

gcloud/datastore/test_connection.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ def _make_query_pb(self, kind):
3636
return pb
3737

3838
def _makeOne(self, *args, **kw):
39-
return self._getTargetClass()(*args, **kw)
39+
conn = self._getTargetClass()(*args, **kw)
40+
# Set the user agent so the user_agent is not lazily loaded.
41+
setattr(conn, 'user_agent', 'gcloud-python/test')
42+
return conn
4043

4144
def _verifyProtobufCall(self, called_with, URI, conn):
4245
self.assertEqual(called_with['uri'], URI)

gcloud/storage/test_connection.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ def _getTargetClass(self):
2222
return Connection
2323

2424
def _makeOne(self, *args, **kw):
25-
return self._getTargetClass()(*args, **kw)
25+
conn = self._getTargetClass()(*args, **kw)
26+
# Set the user agent so the user_agent is not lazily loaded.
27+
setattr(conn, 'user_agent', 'gcloud-python/test')
28+
return conn
2629

2730
def test_ctor_defaults(self):
2831
PROJECT = 'project'

gcloud/test___init__.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@
1717

1818
class Test__UserAgentReifyProperty(unittest2.TestCase):
1919

20+
def setUp(self):
21+
from gcloud.connection import Connection
22+
self._original_connection_user_agent = Connection.user_agent
23+
Connection.user_agent = self._makeOne(_NamedObject('user_agent'))
24+
25+
def tearDown(self):
26+
from gcloud.connection import Connection
27+
Connection.user_agent = self._original_connection_user_agent
28+
2029
def _getTargetClass(self):
2130
from gcloud import _UserAgentReifyProperty
2231
return _UserAgentReifyProperty
@@ -25,8 +34,8 @@ def _makeOne(self, *args, **kw):
2534
return self._getTargetClass()(*args, **kw)
2635

2736
def test_ctor_defaults(self):
28-
ua_prop = self._makeOne(NamedObject())
29-
self.assertEqual(ua_prop._property_name, NamedObject.NAME_VAL)
37+
ua_prop = self._makeOne(_NamedObject())
38+
self.assertEqual(ua_prop._property_name, _NamedObject.NAME_VAL)
3039
self.assertEqual(ua_prop._curr_environ, None)
3140
self.assertEqual(ua_prop._user_agent, None)
3241

@@ -36,8 +45,8 @@ def test_ctor_appengine_loaded(self):
3645

3746
NON_NULL = object()
3847
with _Monkey(gcloud, appengine=NON_NULL):
39-
ua_prop = self._makeOne(NamedObject())
40-
self.assertEqual(ua_prop._property_name, NamedObject.NAME_VAL)
48+
ua_prop = self._makeOne(_NamedObject())
49+
self.assertEqual(ua_prop._property_name, _NamedObject.NAME_VAL)
4150
self.assertEqual(ua_prop._curr_environ, '-GAE')
4251
self.assertEqual(ua_prop._user_agent, None)
4352

@@ -100,14 +109,29 @@ def test_instance_property_on_connection_default(self):
100109
expected_ua = 'gcloud-python/{0}'.format(gcloud.__version__)
101110
self.assertEqual(cnxn.user_agent, expected_ua)
102111

112+
def test___get___access_twice(self):
113+
import gcloud
114+
from gcloud.connection import Connection
115+
116+
expected_ua = 'gcloud-python/{0}'.format(gcloud.__version__)
117+
118+
self.assertEqual(Connection.user_agent._user_agent, None)
119+
value = Connection.user_agent.__get__(_NamedObject())
120+
self.assertEqual(value, expected_ua)
121+
122+
# Now test using it a second time.
123+
self.assertEqual(Connection.user_agent._user_agent, expected_ua)
124+
value_again = Connection.user_agent.__get__(_NamedObject())
125+
self.assertEqual(value_again, expected_ua)
126+
103127
def test_instance_property_connection_with_appengine(self):
104128
import gcloud
105129
from gcloud._testing import _Monkey
106130
from gcloud.connection import Connection
107131

108132
NON_NULL = object()
109133
with _Monkey(gcloud, appengine=NON_NULL):
110-
local_prop = self._makeOne(NamedObject('user_agent'))
134+
local_prop = self._makeOne(_NamedObject('user_agent'))
111135
with _Monkey(Connection, user_agent=local_prop):
112136
cnxn = Connection()
113137
value = cnxn.user_agent
@@ -130,7 +154,7 @@ def _factory(host, timeout):
130154
return CONNECTION
131155

132156
with _Monkey(gcloud, HTTPConnection=_factory):
133-
local_prop = self._makeOne(NamedObject('user_agent'))
157+
local_prop = self._makeOne(_NamedObject('user_agent'))
134158
with _Monkey(Connection, user_agent=local_prop):
135159
cnxn = Connection()
136160
value = cnxn.user_agent
@@ -139,7 +163,7 @@ def _factory(host, timeout):
139163
self.assertEqual(value, expected_ua)
140164

141165

142-
class NamedObject(object):
166+
class _NamedObject(object):
143167

144168
NAME_VAL = object()
145169

0 commit comments

Comments
 (0)
0