]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-24928: Add test case for patch.dict using OrderedDict (GH -11437)
authorEmmanuel Arias <eamanu@yaerobi.com>
Fri, 24 Jan 2020 08:14:14 +0000 (05:14 -0300)
committerChris Withers <chris@withers.org>
Fri, 24 Jan 2020 08:14:14 +0000 (08:14 +0000)
* add test for path.dict using OrderedDict

Co-authored-by: Yu Tomita nekobon@users.noreply.github.com
Lib/unittest/test/testmock/testpatch.py

index e065a2c35fbeec54886ed0e4f92ba9d6894e0053..dc4ccdbae242b4ea01add73fdb689de892dbe723 100644 (file)
@@ -4,6 +4,7 @@
 
 import os
 import sys
+from collections import OrderedDict
 
 import unittest
 from unittest.test.testmock import support
@@ -1834,6 +1835,25 @@ class PatchTest(unittest.TestCase):
             self.assertEqual(foo(), 1)
         self.assertEqual(foo(), 0)
 
+    def test_patch_orderdict(self):
+        foo = OrderedDict()
+        foo['a'] = object()
+        foo['b'] = 'python'
+
+        original = foo.copy()
+        update_values = list(zip('cdefghijklmnopqrstuvwxyz', range(26)))
+        patched_values = list(foo.items()) + update_values
+
+        with patch.dict(foo, OrderedDict(update_values)):
+            self.assertEqual(list(foo.items()), patched_values)
+
+        self.assertEqual(foo, original)
+
+        with patch.dict(foo, update_values):
+            self.assertEqual(list(foo.items()), patched_values)
+
+        self.assertEqual(foo, original)
+
     def test_dotted_but_module_not_loaded(self):
         # This exercises the AttributeError branch of _dot_lookup.