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)
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)
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"))))
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)
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)
def test_index_name(self): r = self.connection(_lv.Scan(self.table).index_name("gsi")) self.assertEqual(len(r.items), 1)
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)
def test_simple_scan(self): self.assertEqual( sorted(item["h"] for item in _lv.iterate_scan( self.connection, _lv.Scan("Aaa"))), self.keys)