Ejemplo n.º 1
0
    def test_paginated_segmented_scan(self):
        # If this test fails randomly, change it to assert on the sum and union of the results
        r01 = self.connection(
            _lv.Scan("Aaa").segment(0, 2).limit(1)
        )
        r02 = self.connection(
            _lv.Scan("Aaa").segment(0, 2).exclusive_start_key({"h": "1"})
        )
        r11 = self.connection(
            _lv.Scan("Aaa").segment(1, 2).limit(1)
        )
        r12 = self.connection(
            _lv.Scan("Aaa").segment(1, 2).exclusive_start_key({"h": "0"})
        )

        self.assertEqual(r01.count, 1)
        self.assertEqual(r01.items[0], {"h": "1", "v": 1})
        self.assertEqual(r01.last_evaluated_key, {"h": "1"})
        self.assertEqual(r01.scanned_count, 1)

        self.assertEqual(r02.count, 1)
        self.assertEqual(r02.items[0], {"h": "3", "v": 3})
        self.assertEqual(r02.last_evaluated_key, None)
        self.assertEqual(r02.scanned_count, 1)

        self.assertEqual(r11.count, 1)
        self.assertEqual(r11.items[0], {"h": "0", "v": 0})
        self.assertEqual(r11.last_evaluated_key, {"h": "0"})
        self.assertEqual(r11.scanned_count, 1)

        self.assertEqual(r12.count, 1)
        self.assertEqual(r12.items[0], {"h": "2", "v": 2})
        self.assertEqual(r12.last_evaluated_key, None)
        self.assertEqual(r12.scanned_count, 1)
Ejemplo n.º 2
0
    def test_return_consumed_capacity_total(self):
        r = self.connection(_lv.Scan(self.table).return_consumed_capacity_total())

        self.assertEqual(r.consumed_capacity.capacity_units, 0.5)
        self.assertEqual(r.consumed_capacity.global_secondary_indexes, None)
        self.assertEqual(r.consumed_capacity.local_secondary_indexes, None)
        self.assertEqual(r.consumed_capacity.table, None)
        self.assertEqual(r.consumed_capacity.table_name, self.table)
Ejemplo n.º 3
0
 def test(self):
     _lv.batch_delete_item(self.connection, "Aaa", [{
         "h": self.key(i)
     } for i in range(100)])
     self.assertEqual([],
                      list(
                          _lv.iterate_scan(self.connection,
                                           _lv.Scan("Aaa"))))
Ejemplo n.º 4
0
    def test_filtered_scan(self):
        r = self.connection(
            _lv.Scan("Aaa").filter_expression("v>:v").expression_attribute_value("v", 1).project("h")
        )

        self.assertEqual(r.count, 2)
        self.assertEqual(r.items[0], {"h": "3"})
        self.assertEqual(r.items[1], {"h": "2"})
        self.assertEqual(r.last_evaluated_key, None)
        self.assertEqual(r.scanned_count, 4)
Ejemplo n.º 5
0
    def test_simple_scan(self):
        r = self.connection(
            _lv.Scan("Aaa")
        )

        self.assertEqual(r.count, 4)
        items = sorted((r.items[i] for i in range(4)), key=lambda i: i["h"])
        self.assertEqual(items, [{"h": "0", "v": 0}, {"h": "1", "v": 1}, {"h": "2", "v": 2}, {"h": "3", "v": 3}])
        self.assertEqual(r.last_evaluated_key, None)
        self.assertEqual(r.scanned_count, 4)
Ejemplo n.º 6
0
    def test_index_name(self):
        r = self.connection(_lv.Scan(self.table).index_name("gsi"))

        self.assertEqual(len(r.items), 1)
Ejemplo n.º 7
0
 def test_parallel_scan(self):
     keys = []
     for segment in _lv.parallelize_scan(_lv.Scan("Aaa"), 3):
         keys.extend(item["h"]
                     for item in _lv.iterate_scan(self.connection, segment))
     self.assertEqual(sorted(keys), self.keys)
Ejemplo n.º 8
0
 def test_simple_scan(self):
     self.assertEqual(
         sorted(item["h"] for item in _lv.iterate_scan(
             self.connection, _lv.Scan("Aaa"))), self.keys)