Issue #22609: Revert changes in UserDict. They conflicted with existing tests.

This commit is contained in:
Serhiy Storchaka 2014-11-27 17:45:44 +02:00
parent ae5cb214d2
commit a86700ae87
2 changed files with 2 additions and 28 deletions

View File

@ -893,14 +893,7 @@ class ChainMap(MutableMapping):
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)

View File

@ -1571,24 +1571,6 @@ class SubclassMappingTests(mapping_tests.BasicTestMappingProtocol):
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
@ -1600,8 +1582,7 @@ def test_main(verbose=None):
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)