def test_added_descriptor_table_caching(self): cache_elem = DataMemoryElement(readonly=False) descrs = [random_descriptor() for _ in range(3)] expected_table = dict((r.uuid(), r) for r in descrs) i = MemoryDescriptorIndex(cache_elem) ntools.assert_true(cache_elem.is_empty()) # Should add descriptors to table, caching to writable element. i.add_many_descriptors(descrs) ntools.assert_false(cache_elem.is_empty()) ntools.assert_equal(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) ntools.assert_equal(pickle.loads(i.cache_element.get_bytes()), expected_table) rm_d = expected_table.values()[0] del expected_table[rm_d.uuid()] i.remove_descriptor(rm_d.uuid()) ntools.assert_equal(pickle.loads(i.cache_element.get_bytes()), expected_table)
def test_table_caching(self): fd, tmp_cache = tempfile.mkstemp() os.close(fd) os.remove(tmp_cache) try: i = MemoryDescriptorIndex(tmp_cache) descrs = [random_descriptor() for _ in xrange(3)] expected_cache = dict((r.uuid(), r) for r in descrs) # cache should not exist yet ntools.assert_false(os.path.isfile(tmp_cache)) # Should write file and should be a dictionary of 3 # elements i.add_many_descriptors(descrs) ntools.assert_true(os.path.isfile(tmp_cache)) with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) # Changing the internal table (remove, add) it should reflect in # cache new_d = random_descriptor() i.add_descriptor(new_d) expected_cache[new_d.uuid()] = new_d with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) rm_d = expected_cache.values()[0] i.remove_descriptor(rm_d.uuid()) del expected_cache[rm_d.uuid()] with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) finally: os.remove(tmp_cache)
def test_added_descriptor_table_caching(self): cache_elem = DataMemoryElement(readonly=False) descrs = [random_descriptor() for _ in range(3)] expected_table = dict((r.uuid(), r) for r in descrs) i = MemoryDescriptorIndex(cache_elem) 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_remove(self): i = MemoryDescriptorIndex() descrs = [random_descriptor() for _ in range(100)] i.add_many_descriptors(descrs) ntools.assert_equal(len(i), 100) ntools.assert_equal(list(i.iterdescriptors()), descrs) # remove singles i.remove_descriptor(descrs[0].uuid()) ntools.assert_equal(len(i), 99) ntools.assert_equal(set(i.iterdescriptors()), set(descrs[1:])) # remove many rm_d = descrs[slice(45, 80, 3)] i.remove_many_descriptors((d.uuid() for d in rm_d)) ntools.assert_equal(len(i), 99 - len(rm_d)) ntools.assert_equal(set(i.iterdescriptors()), set(descrs[1:]).difference(rm_d))
def test_remove(self): i = MemoryDescriptorIndex() descrs = [random_descriptor() for _ in xrange(100)] i.add_many_descriptors(descrs) ntools.assert_equal(len(i), 100) ntools.assert_equal(list(i.iterdescriptors()), descrs) # remove singles i.remove_descriptor(descrs[0].uuid()) ntools.assert_equal(len(i), 99) ntools.assert_equal(set(i.iterdescriptors()), set(descrs[1:])) # remove many rm_d = descrs[slice(45, 80, 3)] i.remove_many_descriptors((d.uuid() for d in rm_d)) ntools.assert_equal(len(i), 99 - len(rm_d)) ntools.assert_equal(set(i.iterdescriptors()), set(descrs[1:]).difference(rm_d))
def test_table_caching(self): fd, tmp_cache = tempfile.mkstemp() os.close(fd) os.remove(tmp_cache) try: i = MemoryDescriptorIndex(tmp_cache) descrs = [random_descriptor() for _ in xrange(3)] expected_cache = dict((r.uuid(), r) for r in descrs) # cache should not exist yet ntools.assert_false(os.path.isfile(tmp_cache)) # Should write file and should be a dictionary of 3 # elements i.add_many_descriptors(descrs) ntools.assert_true(os.path.isfile(tmp_cache)) with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) # Changing the internal table (remove, add) it should reflect in # cache new_d = random_descriptor() i.add_descriptor(new_d) expected_cache[new_d.uuid()] = new_d with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) rm_d = expected_cache.values()[0] i.remove_descriptor(rm_d.uuid()) del expected_cache[rm_d.uuid()] with open(tmp_cache) as f: ntools.assert_equal(cPickle.load(f), expected_cache) finally: os.remove(tmp_cache)