class UserDict(MutableMapping):
# Start by filling-out the abstract methods
- def __init__(*args, **kwargs):
- if not args:
- raise TypeError("descriptor '__init__' of 'UserDict' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- dict = args[0] if args else None
+ def __init__(self, dict=None, **kwargs):
self.data = {}
if dict is not None:
self.update(dict)
d = self._empty_mapping()
self.assertRaises(KeyError, d.popitem)
-class TestUserDict(unittest.TestCase):
-
- def test_init(self):
- self.assertEqual(list(UserDict(self=42).items()), [('self', 42)])
- self.assertEqual(list(UserDict(dict=42).items()), [('dict', 42)])
- self.assertEqual(list(UserDict(dict=None).items()), [('dict', None)])
- self.assertRaises(TypeError, UserDict, 42)
- self.assertRaises(TypeError, UserDict, (), ())
- self.assertRaises(TypeError, UserDict.__init__)
-
- def test_update(self):
- d = UserDict()
- d.update(self=42)
- self.assertEqual(list(d.items()), [('self', 42)])
- self.assertRaises(TypeError, UserDict().update, 42)
- self.assertRaises(TypeError, UserDict().update, {}, {})
- self.assertRaises(TypeError, UserDict.update)
-
################################################################################
### Run tests
NamedTupleDocs = doctest.DocTestSuite(module=collections)
test_classes = [TestNamedTuple, NamedTupleDocs, TestOneTrickPonyABCs,
TestCollectionABCs, TestCounter, TestChainMap,
- TestOrderedDict, GeneralMappingTests, SubclassMappingTests,
- TestUserDict,]
+ TestOrderedDict, GeneralMappingTests, SubclassMappingTests]
support.run_unittest(*test_classes)
support.run_doctest(collections, verbose)