this can be done without a custom dict (also fixes #12544)

This commit is contained in:
Benjamin Peterson 2011-07-12 19:21:42 -05:00
parent 1616645a00
commit 83c14fe1ee
1 changed files with 3 additions and 22 deletions

View File

@ -129,27 +129,6 @@ class _AssertRaisesContext(object):
return True
class _TypeEqualityDict(object):
def __init__(self, testcase):
self.testcase = testcase
self._store = {}
def __setitem__(self, key, value):
self._store[key] = value
def __getitem__(self, key):
value = self._store[key]
if isinstance(value, basestring):
return getattr(self.testcase, value)
return value
def get(self, key, default=None):
if key in self._store:
return self[key]
return default
class TestCase(object):
"""A class whose instances are single test cases.
@ -216,7 +195,7 @@ class TestCase(object):
# Map types to custom assertEqual functions that will compare
# instances of said type in more detail to generate a more useful
# error message.
self._type_equality_funcs = _TypeEqualityDict(self)
self._type_equality_funcs = {}
self.addTypeEqualityFunc(dict, 'assertDictEqual')
self.addTypeEqualityFunc(list, 'assertListEqual')
self.addTypeEqualityFunc(tuple, 'assertTupleEqual')
@ -511,6 +490,8 @@ class TestCase(object):
if type(first) is type(second):
asserter = self._type_equality_funcs.get(type(first))
if asserter is not None:
if isinstance(asserter, basestring):
asserter = getattr(self, asserter)
return asserter
return self._baseAssertEqual