Skip to content

Commit aa2c138

Browse files
committed
Check exclude from indexes type in Entity ctor.
Fixes #819.
1 parent d77000d commit aa2c138

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

gcloud/datastore/entity.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
"""Class for representing a single entity in the Cloud Datastore."""
1616

1717

18+
from gcloud._helpers import _ensure_tuple_or_list
19+
20+
1821
class Entity(dict):
1922
"""Entities are akin to rows in a relational database
2023
@@ -76,7 +79,8 @@ class Entity(dict):
7679
def __init__(self, key=None, exclude_from_indexes=()):
7780
super(Entity, self).__init__()
7881
self.key = key
79-
self._exclude_from_indexes = set(exclude_from_indexes)
82+
self._exclude_from_indexes = set(_ensure_tuple_or_list(
83+
'exclude_from_indexes', exclude_from_indexes))
8084

8185
def __eq__(self, other):
8286
"""Compare two entities for equality.

gcloud/datastore/test_entity.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ def test_ctor_explicit(self):
5252
self.assertEqual(sorted(entity.exclude_from_indexes),
5353
sorted(_EXCLUDE_FROM_INDEXES))
5454

55+
def test_ctor_bad_exclude_from_indexes(self):
56+
BAD_EXCLUDE_FROM_INDEXES = object()
57+
key = _Key()
58+
self.assertRaises(TypeError, self._makeOne, key=key,
59+
exclude_from_indexes=BAD_EXCLUDE_FROM_INDEXES)
60+
5561
def test___eq_____ne___w_non_entity(self):
5662
from gcloud.datastore.key import Key
5763
key = Key(_KIND, _ID, dataset_id=_DATASET_ID)

0 commit comments

Comments
 (0)