@@ -213,6 +213,56 @@ def test_set_implicit_three_env_appengine_and_compute(self):
213213 self .assertEqual (connection .timeout , None )
214214
215215
216+ class Test_lazy_loaded_dataset_id (unittest2 .TestCase ):
217+
218+ def setUp (self ):
219+ from gcloud .datastore import _implicit_environ
220+ self ._replaced_default = _implicit_environ .DEFAULT_ENVIRON
221+ _implicit_environ .DEFAULT_ENVIRON = _implicit_environ .Environment ()
222+
223+ def tearDown (self ):
224+ from gcloud .datastore import _implicit_environ
225+ _implicit_environ .DEFAULT_ENVIRON = self ._replaced_default
226+
227+ def test_prop_default (self ):
228+ from gcloud .datastore import _implicit_environ
229+ from gcloud .datastore ._implicit_environ import Environment
230+
231+ self .assertTrue (isinstance (Environment .dataset_id ,
232+ _implicit_environ ._DatasetIDProperty ))
233+ self .assertEqual (_implicit_environ .DEFAULT_ENVIRON .dataset_id , None )
234+
235+ def test_prop_on_wrong_class (self ):
236+ from gcloud .datastore import _implicit_environ
237+
238+ data_prop = _implicit_environ ._DatasetIDProperty ()
239+
240+ class FakeEnv (object ):
241+ dataset_id = data_prop
242+
243+ self .assertTrue (FakeEnv .dataset_id is data_prop )
244+ self .assertTrue (FakeEnv ().dataset_id is data_prop )
245+
246+ def test_prop_descriptor (self ):
247+ from gcloud ._testing import _Monkey
248+ from gcloud .datastore import _implicit_environ
249+
250+ self .assertFalse (
251+ 'dataset_id' in _implicit_environ .DEFAULT_ENVIRON .__dict__ )
252+
253+ DEFAULT = object ()
254+
255+ def mock_default ():
256+ return DEFAULT
257+
258+ with _Monkey (_implicit_environ , get_default_dataset_id = mock_default ):
259+ lazy_loaded = _implicit_environ .DEFAULT_ENVIRON .dataset_id
260+
261+ self .assertEqual (lazy_loaded , DEFAULT )
262+ self .assertTrue (
263+ 'dataset_id' in _implicit_environ .DEFAULT_ENVIRON .__dict__ )
264+
265+
216266class _AppIdentity (object ):
217267
218268 def __init__ (self , app_id ):
0 commit comments