def test_enumeration(self): """Test mapping enumeration: keys(), values(), items()""" collection = BaseCollection(ITEMS, NAMES) assert set(collection.keys()) == set(ITEMS.keys()) # sufficient # all keys present for uid in collection.keys(): assert uid in collection item = ITEMS.get(uid) assert ITEMS.get(uid) in collection.values() assert (uid, item) in collection.items()
def test_iteration(self): collection = BaseCollection(ITEMS, NAMES) assert set(collection.keys()) == set(ITEMS.keys()) # sufficient assert set(collection.iterkeys()) == set(collection.keys()) assert set(collection.itervalues()) == set(collection.values()) assert set(collection.iteritems()) == set(collection.items()) # all keys present for uid in collection.iterkeys(): assert uid in collection item = ITEMS.get(uid) assert ITEMS.get(uid) in collection.itervalues() assert (uid, item) in collection.iteritems()
def test_set_difference(self): collection1 = BaseCollection(ITEMS, NAMES) collection2 = BaseCollection(ITEMS2) disjoint = BaseCollection(ITEMS3) self.assertIsInstance( collection2.difference(collection1), BaseCollection, ) collection3 = collection2 - collection1 for k in collection1.keys(): assert k not in collection3 for k in [key for key in collection2 if key not in collection1]: assert k in collection3 collection4 = collection1 - disjoint # nothing removed: assert set(collection4.keys()) == set(collection1.keys())
def test_get(self): """Test get/__getitem__ methods""" k = ITEMS.keys()[0] collection = BaseCollection(ITEMS, NAMES) assert collection.get(k) is not None assert collection.get(k) is collection[k] assert collection.get(k) is ITEMS.get(k) # key normalization: assert collection.get(uuid.UUID(k)) is collection.get(k) # all keys present for uid in collection.keys(): assert collection.get(uid) is ITEMS.get(uid)
def test_set_intersection(self): collection1 = BaseCollection(ITEMS, NAMES) collection2 = BaseCollection(ITEMS2) disjoint = BaseCollection(ITEMS3) self.assertIsInstance( collection2.intersection(collection1), BaseCollection, ) # collection1 is subset, common elements self.assertEqual( set((collection1 & collection2).keys()), set(collection1.keys()), ) # intersection of disjoint set is null set, empty mapping: assert not (collection1 & disjoint).keys()
def test_len(self): collection = BaseCollection(ITEMS, NAMES) assert len(collection) == len(collection.keys()) assert len(collection) == len(ITEMS)
def test_contains(self): collection = BaseCollection(ITEMS, NAMES) # all keys present for uid in collection.keys(): assert uid in collection