Here's the code in question:

        class PsuedoFloat:
            def __init__(self, value):
                self.value = float(value)
            def __int__(self):
                return int(self.value)

        pi = PsuedoFloat(3.1415)

        self.assertRaisesRegex(TypeError, '%x format: an integer is required, 
not PsuedoFloat', '%x'.__mod__, pi),

Here's the exception:

======================================================================
ERROR: test_formatting (test.test_unicode.UnicodeTest)
----------------------------------------------------------------------
TypeError: 'PsuedoFloat' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ethan/source/python/issue19995/Lib/test/test_unicode.py", line 
1156, in test_formatting
    self.assertRaisesRegex(TypeError, '%c'.__mod__, pi),
  File "/home/ethan/source/python/issue19995/Lib/unittest/case.py", line 1235, 
in assertRaisesRegex
    return context.handle('assertRaisesRegex', callable_obj, args, kwargs)
  File "/home/ethan/source/python/issue19995/Lib/unittest/case.py", line 161, 
in handle
    callable_obj(*args, **kwargs)
  File "/home/ethan/source/python/issue19995/Lib/unittest/case.py", line 190, 
in __exit__
    if not expected_regex.search(str(exc_value)):
AttributeError: 'method-wrapper' object has no attribute 'search'

----------------------------------------------------------------------

At worst, I was expecting a difference in the TypeError exception message; I have no idea why `pi` is being called. From the docs:

---- 
http://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaisesRegex
 ----
assertRaisesRegex(exception, regex, callable, *args, **kwds)

    Like assertRaises() but also tests that regex matches on the string 
representation
    of the raised exception. regex may be a regular expression object or a 
string
    containing a regular expression suitable for use by re.search(). Examples:

    self.assertRaisesRegex(ValueError, "invalid literal for.*XYZ'$", int, 'XYZ')
--------------------------------------------------------------------------------------------

Am I correct in thinking this is a bug?

--
~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to