diff options
author | Xtreak <tir.karthi@gmail.com> | 2019-09-09 10:55:22 (GMT) |
---|---|---|
committer | Zachary Ware <zachary.ware@gmail.com> | 2019-09-09 10:55:22 (GMT) |
commit | 9d607061c9c888913ae2c18543775cf360d55f27 (patch) | |
tree | 1c98b9421d17c9b5ae54c661628d9900e3d646a9 | |
parent | 63c98ed2d21d22b46f3517fd7dfd88f0c1521299 (diff) | |
download | cpython-9d607061c9c888913ae2c18543775cf360d55f27.zip cpython-9d607061c9c888913ae2c18543775cf360d55f27.tar.gz cpython-9d607061c9c888913ae2c18543775cf360d55f27.tar.bz2 |
bpo-37212: Preserve keyword argument order in unittest.mock.call and error messages (GH-14310)
-rw-r--r-- | Lib/unittest/mock.py | 2 | ||||
-rw-r--r-- | Lib/unittest/test/testmock/testmock.py | 6 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2019-06-22-22-00-35.bpo-37212.Zhv-tq.rst | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 89312f1..c9194ff 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -2320,7 +2320,7 @@ def _format_call_signature(name, args, kwargs): formatted_args = '' args_string = ', '.join([repr(arg) for arg in args]) kwargs_string = ', '.join([ - '%s=%r' % (key, value) for key, value in sorted(kwargs.items()) + '%s=%r' % (key, value) for key, value in kwargs.items() ]) if args_string: formatted_args = args_string diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py index 265eb1b..581afaa 100644 --- a/Lib/unittest/test/testmock/testmock.py +++ b/Lib/unittest/test/testmock/testmock.py @@ -1571,11 +1571,11 @@ class MockTest(unittest.TestCase): m.assert_called_once() self.assertNotIn("Calls:", str(e.exception)) - #Issue21256 printout of keyword args should be in deterministic order - def test_sorted_call_signature(self): + #Issue37212 printout of keyword args now preserves the original order + def test_ordered_call_signature(self): m = Mock() m.hello(name='hello', daddy='hero') - text = "call(daddy='hero', name='hello')" + text = "call(name='hello', daddy='hero')" self.assertEqual(repr(m.hello.call_args), text) #Issue21270 overrides tuple methods for mock.call objects diff --git a/Misc/NEWS.d/next/Library/2019-06-22-22-00-35.bpo-37212.Zhv-tq.rst b/Misc/NEWS.d/next/Library/2019-06-22-22-00-35.bpo-37212.Zhv-tq.rst new file mode 100644 index 0000000..520a022 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-06-22-22-00-35.bpo-37212.Zhv-tq.rst @@ -0,0 +1,2 @@ +:func:`unittest.mock.call` now preserves the order of keyword arguments in +repr output. Patch by Karthikeyan Singaravelan. |