Exemple #1
0
 def create_populated_bag(self):
     bag = TypeBag()
     o1 = 123
     o2 = 456
     o3 = [789]
     bag.add(o1)
     bag.add(o2)
     bag.add(o3)
     return bag, [o1, o2, o3]
Exemple #2
0
 def test_remove_item_that_isnt_in_the_bag(self):
     bag = TypeBag()
     o1 = 123
     bag.add(o1)
     self.assertRaises(lambda: bag.remove(456), KeyError)
     self.assertRaises(lambda: bag.remove(7.89), KeyError)
     bag.remove(o1)
     self.assertRaises(lambda: bag.remove(o1), KeyError)
Exemple #3
0
    def test_add(self):
        bag = TypeBag()

        o1 = 123
        bag.add(o1)
        self.assertEquals(bag.items, {id(o1): o1})
        self.assertEquals(bag.by_type, {int: set([id(o1)])})

        o2 = 456
        bag.add(o2)
        self.assertEquals(bag.items, {id(o1): o1, id(o2): o2})
        self.assertEquals(bag.by_type, { int: set([id(o1), id(o2)]), })

        o3 = [789]
        bag.add(o3)
        self.assertEquals(bag.items, {id(o1): o1, id(o2): o2, id(o3): o3})
        self.assertEquals(bag.by_type, {
            int: set([id(o1), id(o2)]),
            list: set([id(o3)]),
        })
Exemple #4
0
 def test_remove_takes_item_xor_id(self):
     bag = TypeBag()
     self.assertRaises(bag.remove, AssertionError)
     self.assertRaises(
         lambda: bag.remove(item=123, itemid=456),
         AssertionError)
Exemple #5
0
 def test_add_same_thing_fails(self):
     bag = TypeBag()
     o1 = 123
     bag.add(o1)
     self.assertRaises(lambda: bag.add(o1), ValueError)
Exemple #6
0
 def test_remove_returns_the_removed_item(self):
     bag = TypeBag()
     o1 = 123
     bag.add(o1)
     self.assertIs(bag.remove(itemid=id(o1)), o1)