diff --git a/moto/dynamodb2/models.py b/moto/dynamodb2/models.py index 9c045f447..3a330ef17 100644 --- a/moto/dynamodb2/models.py +++ b/moto/dynamodb2/models.py @@ -42,6 +42,18 @@ class DynamoType(object): self.value == other.value ) + def __lt__(self, other): + return self.value < other.value + + def __le__(self, other): + return self.value <= other.value + + def __gt__(self, other): + return self.value > other.value + + def __ge__(self, other): + return self.value >= other.value + def __repr__(self): return "DynamoType: {0}".format(self.to_json()) @@ -196,6 +208,8 @@ class Table(object): else: # If we're not filtering on range key, return all values results = possible_results + + results.sort(key=lambda item: item.range_key) return results, last_page def all_items(self): diff --git a/moto/dynamodb2/responses.py b/moto/dynamodb2/responses.py index 77e79034c..9c960ef48 100644 --- a/moto/dynamodb2/responses.py +++ b/moto/dynamodb2/responses.py @@ -238,7 +238,11 @@ class DynamoHandler(BaseResponse): if items is None: er = 'com.amazonaws.dynamodb.v20111205#ResourceNotFoundException' return self.error(er) - + + limit = self.body.get("Limit") + if limit: + items = items[:limit] + result = { "Count": len(items), "Items": [item.attrs for item in items], @@ -270,6 +274,10 @@ class DynamoHandler(BaseResponse): er = 'com.amazonaws.dynamodb.v20111205#ResourceNotFoundException' return self.error(er) + limit = self.body.get("Limit") + if limit: + items = items[:limit] + result = { "Count": len(items), "Items": [item.attrs for item in items],