Example #1
0
    def test_add_existing(self):
        oset = OrderedSet(self.lst)
        lst = self.lst

        oset.add(1)
        oset.add(3)
        self.assertEqual(list(oset), lst)
Example #2
0
    def test_iter_mutated(self):
        oset = OrderedSet(self.lst)
        it = iter(oset)
        oset.add('a')

        with self.assertRaises(RuntimeError):
            next(it)
Example #3
0
    def test_add_new(self):
        oset = OrderedSet(self.lst)
        lst = self.lst

        item = 10
        lst.append(item)
        oset.add(item)

        self.assertEqual(list(oset), lst)
Example #4
0
    def test_reduce(self):
        oset = OrderedSet(self.lst)
        oset2 = copy.deepcopy(oset)
        self.assertEqual(oset, oset2)

        oset3 = pickle.loads(pickle.dumps(oset))
        self.assertEqual(oset, oset3)

        oset.add(-1)
        self.assertNotEqual(oset, oset2)
Example #5
0
    def test_clear(self):
        val = frozenset([1])

        oset = OrderedSet()
        ws = weakref.WeakKeyDictionary()

        oset.add(val)
        ws[val] = 1
        oset.clear()

        self.assertEqual(list(oset), [])

        del val
        gc.collect()
        self.assertEqual(list(ws), [])