8000 gh-128051: fix tests if sys.float_repr_style is 'legacy' by skirpichev · Pull Request #135908 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-128051: fix tests if sys.float_repr_style is 'legacy' #135908

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file 8000
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Lib/difflib.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ class SequenceMatcher:
sequences. As a rule of thumb, a .ratio() value over 0.6 means the
sequences are close matches:

>>> print(round(s.ratio(), 3))
0.866
>>> print(round(s.ratio(), 2))
0.87
>>>

If you're only interested in where the sequences match,
Expand Down
3 changes: 2 additions & 1 deletion Lib/test/test_builtin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2991,7 +2991,8 @@ def test_namespace_order(self):

def load_tests(loader, tests, pattern):
from doctest import DocTestSuite
tests.addTest(DocTestSuite(builtins))
if sys.float_repr_style == 'short':
tests.addTest(DocTestSuite(builtins))
return tests

if __name__ == "__main__":
Expand Down
12 changes: 6 additions & 6 deletions Lib/test/test_configparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -986,12 +986,12 @@ def test_add_section_default(self):

def test_defaults_keyword(self):
"""bpo-23835 fix for ConfigParser"" 8000 ;"
cf = self.newconfig(defaults={1: 2.4})
self.assertEqual(cf[self.default_section]['1'], '2.4')
self.assertAlmostEqual(cf[self.default_section].getfloat('1'), 2.4)
cf = self.newconfig(defaults={"A": 5.2})
self.assertEqual(cf[self.default_section]['a'], '5.2')
self.assertAlmostEqual(cf[self.default_section].getfloat('a'), 5.2)
cf = self.newconfig(defaults={1: 2.5})
self.assertEqual(cf[self.default_section]['1'], '2.5')
self.assertAlmostEqual(cf[self.default_section].getfloat('1'), 2.5)
cf = self.newconfig(defaults={"A": 5.25})
self.assertEqual(cf[self.default_section]['a'], '5.25')
self.assertAlmostEqual(cf[self.default_section].getfloat('a'), 5.25)


class ConfigParserTestCaseNoInterpolation(BasicTestCase, unittest.TestCase):
Expand Down
4 changes: 3 additions & 1 deletion Lib/test/test_ctypes/test_parameters.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import sys
import unittest
import test.support
from ctypes import (CDLL, PyDLL, ArgumentError,
Expand Down Expand Up @@ -240,7 +241,8 @@ def test_parameter_repr(self):
self.assertRegex(repr(c_ulonglong.from_param(20000)), r"^<cparam '[LIQ]' \(20000\)>$")
self.assertEqual(repr(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
self.assertEqual(repr(c_double.from_param(1.5)), "<cparam 'd' (1.5)>")
self.assertEqual(repr(c_double.from_param(1e300)), "<cparam 'd' (1e+300)>")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't remove tests. Maybe skip it if if getattr(sys, 'float_repr_style', '') == 'short':.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any idea why this was added, given we have other c_double test?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test was added by commit 916610e.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I know. As well, as other tests in this function, but why? This value fits in double? We have only one test for float/longdouble.

if sys.float_repr_style == 'short':
self.assertEqual(repr(c_double.from_param(1e300)), "<cparam 'd' (1e+300)>")
self.assertRegex(repr(c_longdouble.from_param(1.5)), r"^<cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")
self.assertRegex(repr(c_char_p.from_param(b'hihi')), r"^<cparam 'z' \(0x[A-Fa-f0-9]+\)>$")
self.assertRegex(repr(c_wchar_p.from_param('hihi')), r"^<cparam 'Z' \(0x[A-Fa-f0-9]+\)>$")
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def load_tests(loader, tests, ignore):
optionflags=doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE,
))
howto_tests = os.path.join(REPO_ROOT, 'Doc/howto/enum.rst')
if os.path.exists(howto_tests):
if os.path.exists(howto_tests) and sys.float_repr_style == 'short':
tests.addTests(doctest.DocFileSuite(
howto_tests,
module_relative=False,
Expand Down
2 changes: 2 additions & 0 deletions Lib/test/test_float.py
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,8 @@ def test_format(self):
self.assertRaises(ValueError, format, x, '.6,n')

@support.requires_IEEE_754
@unittest.skipUnless(sys.float_repr_style == 'short',
"applies only when using short float repr style")
def test_format_testfile(self):
with open(format_testfile, encoding="utf-8") as testfile:
for line in testfile:
Expand Down
10 changes: 5 additions & 5 deletions Lib/test/test_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,12 +346,12 @@ def __bytes__(self):
testcommon(b"%s", memoryview(b"abc"), b"abc")
# %a will give the equivalent of
# repr(some_obj).encode('ascii', 'backslashreplace')
testcommon(b"%a", 3.14, b"3.14")
testcommon(b"%a", 3.25, b"3.25")
testcommon(b"%a", b"ghi", b"b'ghi'")
testcommon(b"%a", "jkl", b"'jkl'")
testcommon(b"%a", "\u0544", b"'\\u0544'")
# %r is an alias for %a
testcommon(b"%r", 3.14, b"3.14")
testcommon(b"%r", 3.25, b"3.25")
testcommon(b"%r", b"ghi", b"b'ghi'")
testcommon(b"%r", "jkl", b"'jkl'")
testcommon(b"%r", "\u0544", b"'\\u0544'")
Expand Down Expand Up @@ -407,19 +407,19 @@ def test_non_ascii(self):

self.assertEqual(format("abc", "\u2007<5"), "abc\u2007\u2007")
self.assertEqual(format(123, "\u2007<5"), "123\u2007\u2007")
self.assertEqual(format(12.3, "\u2007<6"), "12.3\u2007\u2007")
self.assertEqual(format(12.5, "\u2007<6"), "12.5\u2007\u2007")
self.assertEqual(format(0j, "\u2007<4"), "0j\u2007\u2007")
self.assertEqual(format(1+2j, "\u2007<8"), "(1+2j)\u2007\u2007")

self.assertEqual(format("abc", "\u2007>5"), "\u2007\u2007abc")
self.assertEqual(format(123, "\u2007>5"), "\u2007\u2007123")
self.assertEqual(format(12.3, "\u2007>6"), "\u2007\u200712.3")
self.assertEqual(format(12.5, "\u2007>6"), "\u2007\u200712.5")
self.assertEqual(format(1+2j, "\u2007>8"), "\u2007\u2007(1+2j)")
self.assertEqual(format(0j, "\u2007>4"), "\u2007\u20070j")

self.assertEqual(format("abc", "\u2007^5"), "\u2007abc\u2007")
self.assertEqual(format(123, "\u2007^5"), "\u2007123\u2007")
self.assertEqual(format(12.3, "\u2007^6"), "\u200712.3\u2007")
self.assertEqual(format(12.5, "\u2007^6"), "\u200712.5\u2007")
self.assertEqual(format(1+2j, "\u2007^8"), "\u2007(1+2j)\u2007")
self.assertEqual(format(0j, "\u2007^4"), "\u20070j\u2007")

Expand Down
8 changes: 4 additions & 4 deletions Lib/test/test_fstring.py
Original file line number Diff line number Diff line change
Expand Up @@ -1336,9 +1336,9 @@ def test_equal_equal(self):

def test_conversions(self):
self.assertEqual(f'{3.14:10.10}', ' 3.14')
self.assertEqual(f'{3.14!s:10.10}', '3.14 ')
self.assertEqual(f'{3.14!r:10.10}', '3.14 ')
self.assertEqual(f'{3.14!a:10.10}', '3.14 ')
self.assertEqual(f'{1.25!s:10.10}', '1.25 ')
self.assertEqual(f'{1.25!r:10.10}', '1.25 ')
self.assertEqual(f'{1.25!a:10.10}', '1.25 ')

self.assertEqual(f'{"a"}', 'a')
self.assertEqual(f'{"a"!r}', "'a'")
Expand All @@ -1347,7 +1347,7 @@ def test_conversions(self):
# Conversions can have trailing whitespace after them since it
# does not provide any significance
self.assertEqual(f"{3!s }", "3")
self.assertEqual(f'{3.14!s :10.10}', '3.14 ')
self.assertEqual(f'{1.25!s :10.10}', '1.25 ')

# Not a conversion.
self.assertEqual(f'{"a!r"}', "a!r")
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_json/test_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ def test_colors(self):
(r'" \"foo\" "', f'{t.string}" \\"foo\\" "{t.reset}'),
('"α"', f'{t.string}"\\u03b1"{t.reset}'),
('123', f'{t.number}123{t.reset}'),
('-1.2345e+23', f'{t.number}-1.2345e+23{t.reset}'),
('-1.25e+23', f'{t.number}-1.25e+23{t.reset}'),
(r'{"\\": ""}',
f'''\
{ob}
Expand Down
4 changes: 2 additions & 2 deletions Lib/test/test_optparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -615,9 +615,9 @@ def test_float_default(self):
self.parser.add_option(
"-p", "--prob",
help="blow up with probability PROB [default: %default]")
self.parser.set_defaults(prob=0.43)
self.parser.set_defaults(prob=0.25)
expected_help = self.help_prefix + \
" -p PROB, --prob=PROB blow up with probability PROB [default: 0.43]\n"
" -p PROB, --prob=PROB blow up with probability PROB [default: 0.25]\n"
self.assertHelp(self.parser, expected_help)

def test_alt_expand(self):
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_peepholer.py
Original file line number Diff line number Diff line change
Expand Up @@ -718,9 +718,9 @@ def format(fmt, *values):
self.assertEqual(format('x = %d!', 1234), 'x = 1234!')
self.assertEqual(format('x = %x!', 1234), 'x = 4d2!')
self.assertEqual(format('x = %f!', 1234), 'x = 1234.000000!')
self.assertEqual(format('x = %s!', 1234.5678901), 'x = 1234.5678901!')
self.assertEqual(format('x = %f!', 1234.5678901), 'x = 1234.567890!')
self.assertEqual(format('x = %d!', 1234.5678901), 'x = 1234!')
self.assertEqual(format('x = %s!', 1234.0000625), 'x = 1234.0000625!')
self.assertEqual(format('x = %f!', 1234.0000625), 'x = 1234.000063!')
self.assertEqual(format('x = %d!', 1234.0000625), 'x = 1234!')
self.assertEqual(format('x = %s%% %%%%', 1234), 'x = 1234% %%')
self.assertEqual(format('x = %s!', '%% %s'), 'x = %% %s!')
self.assertEqual(format('x = %s, y = %d', 12, 34), 'x = 12, y = 34')
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_pprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ def __new__(cls, celsius_degrees):
return super().__new__(Temperature, celsius_degrees)
def __repr__(self):
kelvin_degrees = self + 273.15
return f"{kelvin_degrees}°K"
return f"{kelvin_degrees:.2f}°K"
self.assertEqual(pprint.pformat(Temperature(1000)), '1273.15°K')

def test_sorted_dict(self):
Expand Down
20 changes: 10 additions & 10 deletions Lib/test/test_reprlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,20 +397,20 @@ def test_valid_indent(self):
'object': {
1: 'two',
b'three': [
(4.5, 6.7),
(4.5, 6.25),
[set((8, 9)), frozenset((10, 11))],
],
},
'tests': (
(dict(indent=None), '''\
{1: 'two', b'three': [(4.5, 6.7), [{8, 9}, frozenset({10, 11})]]}'''),
{1: 'two', b'three': [(4.5, 6.25), [{8, 9}, frozenset({10, 11})]]}'''),
(dict(indent=False), '''\
{
1: 'two',
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand All @@ -430,7 +430,7 @@ def test_valid_indent(self):
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand All @@ -450,7 +450,7 @@ def test_valid_indent(self):
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand All @@ -470,7 +470,7 @@ def test_valid_indent(self):
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand All @@ -490,7 +490,7 @@ def test_valid_indent(self):
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand Down Expand Up @@ -518,7 +518,7 @@ def test_valid_indent(self):
b'three': [
(
4.5,
6.7,
6.25,
),
[
{
Expand All @@ -538,7 +538,7 @@ def test_valid_indent(self):
-->b'three': [
-->-->(
-->-->-->4.5,
-->-->-->6.7,
-->-->-->6.25,
-->-->),
-->-->[
-->-->-->{
Expand All @@ -558,7 +558,7 @@ def test_valid_indent(self):
....b'three': [
........(
............4.5,
............6.7,
............6.25,
........),
........[
............{
Expand Down
3 changes: 2 additions & 1 deletion Lib/test/test_statistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -3319,7 +3319,8 @@ def tearDown(self):
def load_tests(loader, tests, ignore):
"""Used for doctest/unittest integration."""
tests.addTests(doctest.DocTestSuite())
tests.addTests(doctest.DocTestSuite(statistics))
if sys.float_repr_style == 'short':
tests.addTests(doctest.DocTestSuite(statistics))
return tests


Expand Down
8 changes: 4 additions & 4 deletions Lib/test/test_str.py
Original file line number Diff line number Diff line change
Expand Up @@ -1231,10 +1231,10 @@ def __repr__(self):
self.assertEqual('{0:\x00^6}'.format(3), '\x00\x003\x00\x00\x00')
self.assertEqual('{0:< C6D0 6}'.format(3), '3 ')

self.assertEqual('{0:\x00<6}'.format(3.14), '3.14\x00\x00')
self.assertEqual('{0:\x01<6}'.format(3.14), '3.14\x01\x01')
self.assertEqual('{0:\x00^6}'.format(3.14), '\x003.14\x00')
self.assertEqual('{0:^6}'.format(3.14), ' 3.14 ')
self.assertEqual('{0:\x00<6}'.format(3.25), '3.25\x00\x00')
self.assertEqual('{0:\x01<6}'.format(3.25), '3.25\x01\x01')
self.assertEqual('{0:\x00^6}'.format(3.25), '\x003.25\x00')
self.assertEqual('{0:^6}'.format(3.25), ' 3.25 ')

self.assertEqual('{0:\x00<12}'.format(3+2.0j), '(3+2j)\x00\x00\x00\x00\x00\x00')
self.assertEqual('{0:\x01<12}'.format(3+2.0j), '(3+2j)\x01\x01\x01\x01\x01\x01')
Expand Down
4 changes: 2 additions & 2 deletions Lib/test/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -517,8 +517,8 @@ def test(f, format_spec, result):
# and a number after the decimal. This is tricky, because
# a totally empty format specifier means something else.
# So, just use a sign flag
test(1e200, '+g', '+1e+200')
test(1e200, '+', '+1e+200')
test(1.25e200, '+g', '+1.25e+200')
test(1.25e200, '+', '+1.25e+200')

test(1.1e200, '+g', '+1.1e+200')
test(1.1e200, '+', '+1.1e+200')
Expand Down
Loading
0