[3.6] bpo-29773: Add more cases for testing string to float conversi… · python/cpython@80dfbe3 (original) (raw)

`@@ -119,15 +119,27 @@ def test_float_memoryview(self):

`

119

119

`self.assertEqual(float(memoryview(b'12.34')[1:4]), 2.3)

`

120

120

``

121

121

`def test_error_message(self):

`

122

``

`-

testlist = ('\xbd', '123\xbd', ' 123 456 ')

`

123

``

`-

for s in testlist:

`

124

``

`-

try:

`

``

122

`+

def check(s):

`

``

123

`+

with self.assertRaises(ValueError, msg='float(%r)' % (s,)) as cm:

`

125

124

`float(s)

`

126

``

`-

except ValueError as e:

`

127

``

`-

self.assertIn(s.strip(), e.args[0])

`

128

``

`-

else:

`

129

``

`-

self.fail("Expected int(%r) to raise a ValueError", s)

`

130

``

-

``

125

`+

self.assertEqual(str(cm.exception),

`

``

126

`+

'could not convert string to float: %r' % (s,))

`

``

127

+

``

128

`+

check('\xbd')

`

``

129

`+

check('123\xbd')

`

``

130

`+

check(' 123 456 ')

`

``

131

`+

check(b' 123 456 ')

`

``

132

+

``

133

`+

non-ascii digits (error came from non-digit '!')

`

``

134

`+

check('\u0663\u0661\u0664!')

`

``

135

`+

embedded NUL

`

``

136

`+

check('123\x00')

`

``

137

`+

check('123\x00 245')

`

``

138

`+

check('123\x00245')

`

``

139

`+

byte string with embedded NUL

`

``

140

`+

check(b'123\x00')

`

``

141

`+

non-UTF-8 byte string

`

``

142

`+

check(b'123\xa0')

`

131

143

``

132

144

`@support.run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')

`

133

145

`def test_float_with_comma(self):

`