def test_update(self): d = CuteSleekValueDict(null_callback) d.update(CuteSleekValueDict(null_callback, {1: 100})) d.update({2: 20}) d.update(CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3})) self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) d.update() self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) self.assertRaises((TypeError, AttributeError), d.update, None) class SimpleUserDict: def __init__(self): self.d = CuteSleekValueDict( null_callback, {1: 1, 2: 2, 3: 3} ) def keys(self): return list(self.d.keys()) def __getitem__(self, i): return self.d[i] d.clear() d.update(SimpleUserDict()) self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) class Exc(Exception): pass d.clear() class FailingUserDict: def keys(self): raise Exc self.assertRaises(Exc, d.update, FailingUserDict()) class FailingUserDict: def keys(self): class BogonIter: def __init__(self): self.i = 1 def __iter__(self): return self def __next__(self): if self.i: self.i = 0 return 'a' raise Exc return BogonIter() def __getitem__(self, key): return key self.assertRaises(Exc, d.update, FailingUserDict()) class FailingUserDict: def keys(self): class BogonIter: def __init__(self): self.i = ord('a') def __iter__(self): return self def __next__(self): if self.i <= ord('z'): rtn = chr(self.i) self.i += 1 return rtn raise StopIteration return BogonIter() def __getitem__(self, key): raise Exc self.assertRaises(Exc, d.update, FailingUserDict()) class badseq(object): def __iter__(self): return self def __next__(self): raise Exc() self.assertRaises(Exc, CuteSleekValueDict(null_callback).update, badseq()) self.assertRaises( ValueError, CuteSleekValueDict(null_callback).update, [(1, 2, 3)] )
def test_update(self): d = CuteSleekValueDict(null_callback) d.update(CuteSleekValueDict(null_callback, {1: 100})) d.update({2: 20}) d.update(CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3})) self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) d.update() self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) self.assertRaises((TypeError, AttributeError), d.update, None) class SimpleUserDict: def __init__(self): self.d = CuteSleekValueDict( null_callback, {1: 1, 2: 2, 3: 3} ) def keys(self): return self.d.keys() def __getitem__(self, i): return self.d[i] d.clear() d.update(SimpleUserDict()) self.assertEqual( d, CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) ) class Exc(Exception): pass d.clear() class FailingUserDict: def keys(self): raise Exc self.assertRaises(Exc, d.update, FailingUserDict()) class FailingUserDict: def keys(self): class BogonIter: def __init__(self): self.i = 1 def __iter__(self): return self def next(self): if self.i: self.i = 0 return 'a' raise Exc return BogonIter() def __getitem__(self, key): return key self.assertRaises(Exc, d.update, FailingUserDict()) class FailingUserDict: def keys(self): class BogonIter: def __init__(self): self.i = ord('a') def __iter__(self): return self def next(self): if self.i <= ord('z'): rtn = chr(self.i) self.i += 1 return rtn raise StopIteration return BogonIter() def __getitem__(self, key): raise Exc self.assertRaises(Exc, d.update, FailingUserDict()) class badseq(object): def __iter__(self): return self def next(self): raise Exc() self.assertRaises(Exc, CuteSleekValueDict(null_callback).update, badseq()) self.assertRaises( ValueError, CuteSleekValueDict(null_callback).update, [(1, 2, 3)] )
def test_clear(self): d = CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) d.clear() self.assertEqual(d, CuteSleekValueDict(null_callback)) self.assertRaises(TypeError, d.clear, None)
def test_clear(self): d = CuteSleekValueDict(null_callback, {1: 1, 2: 2, 3: 3}) d.clear() self.assertEqual(d, CuteSleekValueDict(null_callback)) self.assertRaises(TypeError, d.clear, None)