mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	gh-128051: Fix tests if sys.float_repr_style is 'legacy' (#135908)
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
		
							parent
							
								
									e23518fa96
								
							
						
					
					
						commit
						f3aec60d7a
					
				
					 16 changed files with 50 additions and 44 deletions
				
			
		|  | @ -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, | ||||
|  |  | |||
|  | @ -2991,6 +2991,7 @@ def test_namespace_order(self): | |||
| 
 | ||||
| def load_tests(loader, tests, pattern): | ||||
|     from doctest import DocTestSuite | ||||
|     if sys.float_repr_style == 'short': | ||||
|         tests.addTest(DocTestSuite(builtins)) | ||||
|     return tests | ||||
| 
 | ||||
|  |  | |||
|  | @ -986,12 +986,12 @@ def test_add_section_default(self): | |||
| 
 | ||||
|     def test_defaults_keyword(self): | ||||
|         """bpo-23835 fix for ConfigParser""" | ||||
|         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): | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| import sys | ||||
| import unittest | ||||
| import test.support | ||||
| from ctypes import (CDLL, PyDLL, ArgumentError, | ||||
|  | @ -240,6 +241,7 @@ 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)>") | ||||
|         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]+\)>$") | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -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: | ||||
|  |  | |||
|  | @ -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'") | ||||
|  | @ -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") | ||||
| 
 | ||||
|  |  | |||
|  | @ -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'") | ||||
|  | @ -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") | ||||
|  |  | |||
|  | @ -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} | ||||
|  |  | |||
|  | @ -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): | ||||
|  |  | |||
|  | @ -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') | ||||
|  |  | |||
|  | @ -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): | ||||
|  |  | |||
|  | @ -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, | ||||
|                         ), | ||||
|                         [ | ||||
|                         { | ||||
|  | @ -430,7 +430,7 @@ def test_valid_indent(self): | |||
|                          b'three': [ | ||||
|                           ( | ||||
|                            4.5, | ||||
|                            6.7, | ||||
|                            6.25, | ||||
|                           ), | ||||
|                           [ | ||||
|                            { | ||||
|  | @ -450,7 +450,7 @@ def test_valid_indent(self): | |||
|                         b'three': [ | ||||
|                         ( | ||||
|                         4.5, | ||||
|                         6.7, | ||||
|                         6.25, | ||||
|                         ), | ||||
|                         [ | ||||
|                         { | ||||
|  | @ -470,7 +470,7 @@ def test_valid_indent(self): | |||
|                          b'three': [ | ||||
|                           ( | ||||
|                            4.5, | ||||
|                            6.7, | ||||
|                            6.25, | ||||
|                           ), | ||||
|                           [ | ||||
|                            { | ||||
|  | @ -490,7 +490,7 @@ def test_valid_indent(self): | |||
|                             b'three': [ | ||||
|                                 ( | ||||
|                                     4.5, | ||||
|                                     6.7, | ||||
|                                     6.25, | ||||
|                                 ), | ||||
|                                 [ | ||||
|                                     { | ||||
|  | @ -518,7 +518,7 @@ def test_valid_indent(self): | |||
|                         b'three': [ | ||||
|                         ( | ||||
|                         4.5, | ||||
|                         6.7, | ||||
|                         6.25, | ||||
|                         ), | ||||
|                         [ | ||||
|                         { | ||||
|  | @ -538,7 +538,7 @@ def test_valid_indent(self): | |||
|                         -->b'three': [ | ||||
|                         -->-->( | ||||
|                         -->-->-->4.5, | ||||
|                         -->-->-->6.7, | ||||
|                         -->-->-->6.25, | ||||
|                         -->-->), | ||||
|                         -->-->[ | ||||
|                         -->-->-->{ | ||||
|  | @ -558,7 +558,7 @@ def test_valid_indent(self): | |||
|                         ....b'three': [ | ||||
|                         ........( | ||||
|                         ............4.5, | ||||
|                         ............6.7, | ||||
|                         ............6.25, | ||||
|                         ........), | ||||
|                         ........[ | ||||
|                         ............{ | ||||
|  |  | |||
|  | @ -3319,6 +3319,7 @@ def tearDown(self): | |||
| def load_tests(loader, tests, ignore): | ||||
|     """Used for doctest/unittest integration.""" | ||||
|     tests.addTests(doctest.DocTestSuite()) | ||||
|     if sys.float_repr_style == 'short': | ||||
|         tests.addTests(doctest.DocTestSuite(statistics)) | ||||
|     return tests | ||||
| 
 | ||||
|  |  | |||
|  | @ -1231,10 +1231,10 @@ def __repr__(self): | |||
|         self.assertEqual('{0:\x00^6}'.format(3), '\x00\x003\x00\x00\x00') | ||||
|         self.assertEqual('{0:<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') | ||||
|  |  | |||
|  | @ -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') | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sergey B Kirpichev
						Sergey B Kirpichev