add Py3k warnings to oct and hex. backport hex behavior (because it's not different)

This commit is contained in:
Benjamin Peterson 2008-05-17 19:21:20 +00:00
parent 6c90c9faae
commit 79a922d6df
3 changed files with 45 additions and 15 deletions

View file

@ -632,6 +632,10 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(hex(-16L), '-0x10L')
self.assertRaises(TypeError, hex, {})
class Spam(object):
def __index__(self): return 23
self.assertEqual(hex(Spam()), "0x17")
def test_id(self):
id(None)
id(1)

View file

@ -123,6 +123,20 @@ class TestPy3KWarnings(unittest.TestCase):
with catch_warning() as w:
self.assertWarning(buffer('a'), w, expected)
def test_hex_and_oct(self):
class Spam(object):
def __hex__(self): return "0x17"
def __oct__(self): return "07"
expected = 'In 3.x, oct() converts the result of __index__ to octal; ' \
'Use future_builtins.oct for this behavior. ' \
'Also, note the returned format is different.'
with catch_warning() as w:
self.assertWarning(oct(Spam()), w, expected)
expected = 'In 3.x, hex() converts the result of __index__ to hexidecimal.'
with catch_warning() as w:
self.assertWarning(hex(Spam()), w, expected)
class TestStdlibRemovals(unittest.TestCase):