Add getitem support for QueryChain

This commit is contained in:
Konsta Vesterinen
2014-05-06 14:28:51 +03:00
parent 8df5f6dfa8
commit 0d147f7692
2 changed files with 20 additions and 0 deletions

View File

@@ -44,5 +44,16 @@ class QueryChain(object):
else:
skipped += obj_count
def __getitem__(self, key):
if isinstance(key, slice):
return self.__class__(
queries=self.queries,
limit=key.stop,
offset=key.start
)
else:
for obj in self[key:1]:
return obj
def __repr__(self):
return '<QueryChain at 0x%x>' % id(self)

View File

@@ -80,3 +80,12 @@ class TestQueryChain(TestCase):
def test_repr(self):
assert repr(self.chain) == '<QueryChain at 0x%x>' % id(self.chain)
def test_getitem_with_slice(self):
chain = self.chain[1:]
assert chain.offset == 1
assert chain.limit is None
def test_getitem_with_single_key(self):
article = self.chain[2]
assert article == self.articles[0]