def test_added_descriptor_table_caching(self) -> None: cache_elem = DataMemoryElement(readonly=False) descrs = [random_descriptor() for _ in range(3)] expected_table = dict((r.uuid(), r) for r in descrs) i = MemoryDescriptorSet(cache_elem) assert i.cache_element is not None self.assertTrue(cache_elem.is_empty()) # Should add descriptors to table, caching to writable element. i.add_many_descriptors(descrs) self.assertFalse(cache_elem.is_empty()) self.assertEqual(pickle.loads(i.cache_element.get_bytes()), expected_table) # Changing the internal table (remove, add) it should reflect in # cache new_d = random_descriptor() expected_table[new_d.uuid()] = new_d i.add_descriptor(new_d) self.assertEqual(pickle.loads(i.cache_element.get_bytes()), expected_table) rm_d = list(expected_table.values())[0] del expected_table[rm_d.uuid()] i.remove_descriptor(rm_d.uuid()) self.assertEqual(pickle.loads(i.cache_element.get_bytes()), expected_table)
def test_add_descriptor(self) -> None: index = MemoryDescriptorSet() d1 = random_descriptor() index.add_descriptor(d1) self.assertEqual(index._table[d1.uuid()], d1) d2 = random_descriptor() index.add_descriptor(d2) self.assertEqual(index._table[d2.uuid()], d2)
def test_count(self) -> None: index = MemoryDescriptorSet() self.assertEqual(index.count(), 0) d1 = random_descriptor() index.add_descriptor(d1) self.assertEqual(index.count(), 1) d2, d3, d4 = (random_descriptor(), random_descriptor(), random_descriptor()) index.add_many_descriptors([d2, d3, d4]) self.assertEqual(index.count(), 4) d5 = random_descriptor() index.add_descriptor(d5) self.assertEqual(index.count(), 5)