issue #477: Python 2.4 type(exc) returns old-style instance.

This commit is contained in:
David Wilson 2019-01-23 12:44:08 +00:00
parent 2ead451277
commit 07401d767a
2 changed files with 4 additions and 2 deletions

View File

@ -263,7 +263,8 @@ class CallError(Error, object):
Error.__init__(self, fmt, *args)
else:
e = fmt
fmt = '%s.%s: %s' % (type(e).__module__, type(e).__name__, e)
cls = e.__class__
fmt = '%s.%s: %s' % (cls.__module__, cls.__name__, e)
tb = sys.exc_info()[2]
if tb:
fmt += '\n'

View File

@ -31,9 +31,10 @@ class ConstructorTest(testlib.TestCase):
def test_form_base_exc(self):
ve = SystemExit('eek')
e = self.klass(ve)
cls = ve.__class__
self.assertEquals(e.args[0],
# varies across 2/3.
'%s.%s: eek' % (type(ve).__module__, type(ve).__name__))
'%s.%s: eek' % (cls.__module__, cls.__name__))
self.assertTrue(isinstance(e.args[0], mitogen.core.UnicodeType))
def test_from_exc_tb(self):