Skip to content

Commit 9720552

Browse files
authored
Merge pull request #2738 from dhermes/sphinx-doctest-datastore
Adding ability to run doctests with datastore system tests.
2 parents 4eeccac + cc4f735 commit 9720552

File tree

4 files changed

+27
-16
lines changed

4 files changed

+27
-16
lines changed

packages/google-cloud-datastore/google/cloud/datastore/__init__.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,26 @@
1616
1717
You'll typically use these to get started with the API:
1818
19-
.. code-block:: python
19+
.. testsetup:: constructors
2020
21-
from google.cloud import datastore
21+
import os
22+
os.environ['GOOGLE_CLOUD_PROJECT'] = u'my-project'
2223
23-
client = datastore.Client()
24-
key = client.key('EntityKind', 1234)
25-
entity = datastore.Entity(key)
26-
query = client.query(kind='EntityKind')
24+
.. doctest:: constructors
25+
26+
>>> from google.cloud import datastore
27+
>>>
28+
>>> client = datastore.Client()
29+
>>> print(client.project)
30+
my-project
31+
>>> key = client.key('EntityKind', 1234)
32+
>>> key
33+
<Key('EntityKind', 1234), project=my-project>
34+
>>> entity = datastore.Entity(key)
35+
>>> entity['answer'] = 42
36+
>>> entity
37+
<Entity('EntityKind', 1234) {'answer': 42}>
38+
>>> query = client.query(kind='EntityKind')
2739
2840
The main concepts with this API are:
2941

packages/google-cloud-datastore/google/cloud/datastore/entity.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def exclude_from_indexes(self):
144144

145145
def __repr__(self):
146146
if self.key:
147-
return '<Entity%s %s>' % (self.key.path,
147+
return '<Entity%s %s>' % (self.key._flat_path,
148148
super(Entity, self).__repr__())
149149
else:
150-
return '<Entity %s>' % (super(Entity, self).__repr__())
150+
return '<Entity %s>' % (super(Entity, self).__repr__(),)

packages/google-cloud-datastore/google/cloud/datastore/key.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ def parent(self):
380380
return self._parent
381381

382382
def __repr__(self):
383-
return '<Key%s, project=%s>' % (self.path, self.project)
383+
return '<Key%s, project=%s>' % (self._flat_path, self.project)
384384

385385

386386
def _validate_project(project, parent):

packages/google-cloud-datastore/unit_tests/test_entity.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,13 @@ def test___repr___no_key_empty(self):
190190

191191
def test___repr___w_key_non_empty(self):
192192
key = _Key()
193-
key._path = '/bar/baz'
193+
flat_path = ('bar', 12, 'baz', 'himom')
194+
key._flat_path = flat_path
194195
entity = self._make_one(key=key)
195-
entity['foo'] = 'Foo'
196-
self.assertEqual(repr(entity), "<Entity/bar/baz {'foo': 'Foo'}>")
196+
entity_vals = {'foo': 'Foo'}
197+
entity.update(entity_vals)
198+
expected = '<Entity%s %s>' % (flat_path, entity_vals)
199+
self.assertEqual(repr(entity), expected)
197200

198201

199202
class _Key(object):
@@ -206,7 +209,3 @@ class _Key(object):
206209

207210
def __init__(self, project=_PROJECT):
208211
self.project = project
209-
210-
@property
211-
def path(self):
212-
return self._path

0 commit comments

Comments
 (0)