Example #1
0
 def test_query_pagination(self):
     items, last = self.table.query(Key("pk").eq("1"), limit=1)
     assert len(items) == 1
     assert items[0]["sequence"] == 1
     items, last = self.table.query(Key("pk").eq("1"),
                                    limit=5,
                                    exclusive_start_key=last)
     assert len(items) == 2
     assert items[0]["sequence"] == 2
     assert last is None
Example #2
0
 def test_query_reverse_scan(self):
     items, last = self.table.query(Key("pk").eq("1"),
                                    limit=3,
                                    scan_index_forward=False)
     assert len(items) == 3
     assert items[0]["sequence"] == 3
     assert last == {"sk": "1", "pk": "1"}
Example #3
0
 def test_query(self):
     items, _ = self.table.query(
         Key("pk").eq("1"),
         filter_expression=Attr("sequence").gt(1),
         attributes=["sequence"],
     )
     assert len(items) == 2
Example #4
0
 def test_gsi_query(self):
     items, _ = self.table.gsi.query(Key("sk").eq("3") & Key("sequence").gt(3))
     assert len(items) == 1
Example #5
0
 def test_lsi_query(self):
     items, _ = self.table.lsi.query(Key("pk").eq("1"))
     assert len(items) == 2  # Only 2 items have the status attribute
Example #6
0
 def test_query_client_error(self):
     table = MyTable(name="ThisTableDoesntExist", resource=dynamodb)
     with self.assertRaises(ResourceNotFoundException):
         table.query(Key("pk").eq("1"))
Example #7
0
 def test_query_index(self):
     items, _ = self.table.query(Key("pk").eq("2")
                                 & Key("status").eq("deleted"),
                                 _index="lsi")
     assert len(items) == 2