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.

--
~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