On Wed, Mar 19, 2014 at 4:13 PM, Ethan Furman <et...@stoneleaf.us> wrote:
> On 03/19/2014 03:57 PM, Antoine Pitrou wrote: > >> On Wed, 19 Mar 2014 15:17:53 -0700 >> Ethan Furman <et...@stoneleaf.us> wrote: >> >>> On 03/19/2014 03:13 PM, Antoine Pitrou wrote: >>> >>>> On Wed, 19 Mar 2014 14:37:42 -0700 >>>> Ethan Furman <et...@stoneleaf.us> wrote: >>>> >>>>> 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), >>>>> >>>> >>>> This is certainly not the code you are showing above. >>>> >>> >>> More words, please! :) >>> >> >> I mean the line shown just above in the traceback does not match the >> code you presented at the top, and that line clearly has a missing >> regex pattern. >> > > A regex pattern can be a literal, yes? In which case > > exception -> TypeError > regex -> '%x format: an integer is required, not PsuedoFloat' > callable -> '%x'.__mod__ > *args -> pi > **kwargs -> None > > So, unless you can point to where I've gone wrong with the above (which is > why I posted in the first place), I think we have a bug in unittest. > > Also: > > self.assertRaisesRegex(TypeError, '%x format: an integer is > required, not float','%x'.__mod__, 3.14), > self.assertRaisesRegex(TypeError, '%X format: an integer is > required, not float','%X'.__mod__, 2.11), > self.assertRaisesRegex(TypeError, '%o format: an integer is > required, not float','%o'.__mod__, 1.79), > > these lines all work just fine. > What Antoine is trying to tell you is that the traceback you pasted shows this: File "/home/ethan/source/python/issue19995/Lib/test/test_unicode.py", line 1156, in test_formatting self.assertRaisesRegex(TypeError, '%c'.__mod__, pi), ... which is passing '%c'.__mod__ as the 'regex' argument. '%c'.__mod__ is a method of a builtin type, a 'method-wrapper' object, which is why you get the error you're getting: AttributeError: 'method-wrapper' object has no attribute 'search'. -- Thomas Wouters <tho...@python.org> Hi! I'm an email virus! Think twice before sending your email to help me spread!
_______________________________________________ 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