Reverse before limit

This commit is contained in:
Joshua Inkenbrandt 2016-01-09 17:58:06 -08:00
parent 9b0bce93dc
commit 33f31652ea
2 changed files with 28 additions and 4 deletions

View File

@ -320,14 +320,14 @@ class DynamoHandler(BaseResponse):
er = 'com.amazonaws.dynamodb.v20111205#ResourceNotFoundException'
return self.error(er)
limit = self.body.get("Limit")
if limit:
items = items[:limit]
reversed = self.body.get("ScanIndexForward")
if reversed is False:
items.reverse()
limit = self.body.get("Limit")
if limit:
items = items[:limit]
result = {
"Count": len(items),
"Items": [item.attrs for item in items],

View File

@ -570,6 +570,30 @@ def test_query_with_global_indexes():
list(results).should.have.length_of(0)
@mock_dynamodb2
def test_reverse_query():
conn = boto.dynamodb2.layer1.DynamoDBConnection()
table = Table.create('messages', schema=[
HashKey('subject'),
RangeKey('created_at', data_type='N')
])
for i in range(10):
table.put_item({
'subject': "Hi",
'created_at': i
})
results = table.query_2(subject__eq="Hi",
created_at__lt=6,
limit=4,
reverse=True)
expected = map(Decimal, [5, 4, 3, 2])
[r['created_at'] for r in results].should.equal(expected)
@mock_dynamodb2
def test_lookup():
from decimal import Decimal