Skip to content

Commit

Permalink
bpo-29773: Add more cases for testing string to float conversion erro…
Browse files Browse the repository at this point in the history
…rs. (#580)
  • Loading branch information
serhiy-storchaka authored Mar 9, 2017
1 parent 0f6d733 commit 9e6ac83
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions Lib/test/test_float.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,15 +119,27 @@ def test_float_memoryview(self):
self.assertEqual(float(memoryview(b'12.34')[1:4]), 2.3)

def test_error_message(self):
testlist = ('\xbd', '123\xbd', ' 123 456 ')
for s in testlist:
try:
def check(s):
with self.assertRaises(ValueError, msg='float(%r)' % (s,)) as cm:
float(s)
except ValueError as e:
self.assertIn(s.strip(), e.args[0])
else:
self.fail("Expected int(%r) to raise a ValueError", s)

self.assertEqual(str(cm.exception),
'could not convert string to float: %r' % (s,))

check('\xbd')
check('123\xbd')
check(' 123 456 ')
check(b' 123 456 ')

# non-ascii digits (error came from non-digit '!')
check('\u0663\u0661\u0664!')
# embedded NUL
check('123\x00')
check('123\x00 245')
check('123\x00245')
# byte string with embedded NUL
check(b'123\x00')
# non-UTF-8 byte string
check(b'123\xa0')

@support.run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')
def test_float_with_comma(self):
Expand Down

0 comments on commit 9e6ac83

Please sign in to comment.