def test_add_existing(self): oset = OrderedSet(self.lst) lst = self.lst oset.add(1) oset.add(3) self.assertEqual(list(oset), lst)
def test_iter_mutated(self): oset = OrderedSet(self.lst) it = iter(oset) oset.add('a') with self.assertRaises(RuntimeError): next(it)
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)
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)
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), [])