summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXtreak <tir.karthi@gmail.com>2019-09-09 10:55:22 (GMT)
committerZachary Ware <zachary.ware@gmail.com>2019-09-09 10:55:22 (GMT)
commit9d607061c9c888913ae2c18543775cf360d55f27 (patch)
tree1c98b9421d17c9b5ae54c661628d9900e3d646a9
parent63c98ed2d21d22b46f3517fd7dfd88f0c1521299 (diff)
downloadcpython-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.py2
-rw-r--r--Lib/unittest/test/testmock/testmock.py6
-rw-r--r--Misc/NEWS.d/next/Library/2019-06-22-22-00-35.bpo-37212.Zhv-tq.rst2
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.