Skip to content

Commit 6b8f52a

Browse files
committed
Expose 'exclude_from_indexes' via 'Dataset.entity()'.
Incorporates feedback from @dhermes.
1 parent 79b4d5a commit 6b8f52a

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

gcloud/datastore/dataset.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,21 @@ def query(self, *args, **kwargs):
7878
kwargs['dataset'] = self
7979
return Query(*args, **kwargs)
8080

81-
def entity(self, kind):
81+
def entity(self, kind, exclude_from_indexes=()):
8282
"""Create an entity bound to this dataset.
8383
8484
:type kind: string
8585
:param kind: the "kind" of the new entity.
8686
87+
:type exclude_from_indexes: sequence of str
88+
:param exclude_from_indexes: Names of properties *not* to be indexed
89+
for the entity.
90+
8791
:rtype: :class:`gcloud.datastore.entity.Entity`
8892
:returns: a new Entity instance, bound to this dataset.
8993
"""
90-
return Entity(dataset=self, kind=kind)
94+
return Entity(dataset=self, kind=kind,
95+
exclude_from_indexes=exclude_from_indexes)
9196

9297
def transaction(self, *args, **kwargs):
9398
"""Create a transaction bound to this dataset.

gcloud/datastore/test_dataset.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,25 @@ def test_query_factory(self):
3434
self.assertIsInstance(query, Query)
3535
self.assertTrue(query.dataset() is dataset)
3636

37-
def test_entity_factory(self):
37+
def test_entity_factory_defaults(self):
3838
from gcloud.datastore.entity import Entity
3939
DATASET_ID = 'DATASET'
4040
KIND = 'KIND'
4141
dataset = self._makeOne(DATASET_ID)
4242
entity = dataset.entity(KIND)
4343
self.assertIsInstance(entity, Entity)
4444
self.assertEqual(entity.kind(), KIND)
45+
self.assertEqual(sorted(entity.exclude_from_indexes()), [])
46+
47+
def test_entity_factory_explicit(self):
48+
from gcloud.datastore.entity import Entity
49+
DATASET_ID = 'DATASET'
50+
KIND = 'KIND'
51+
dataset = self._makeOne(DATASET_ID)
52+
entity = dataset.entity(KIND, ['foo', 'bar'])
53+
self.assertIsInstance(entity, Entity)
54+
self.assertEqual(entity.kind(), KIND)
55+
self.assertEqual(sorted(entity.exclude_from_indexes()), ['bar', 'foo'])
4556

4657
def test_transaction_factory(self):
4758
from gcloud.datastore.transaction import Transaction

0 commit comments

Comments
 (0)