bpo-24928: Add test case for patch.dict using OrderedDict (GH -11437)

* add test for path.dict using OrderedDict

Co-authored-by: Yu Tomita nekobon@users.noreply.github.com
This commit is contained in:
Emmanuel Arias 2020-01-24 05:14:14 -03:00 committed by Chris Withers
parent 65ecc390c1
commit 1d0c5e16ea
1 changed files with 20 additions and 0 deletions

View File

@ -4,6 +4,7 @@
import os import os
import sys import sys
from collections import OrderedDict
import unittest import unittest
from unittest.test.testmock import support from unittest.test.testmock import support
@ -1834,6 +1835,25 @@ class PatchTest(unittest.TestCase):
self.assertEqual(foo(), 1) self.assertEqual(foo(), 1)
self.assertEqual(foo(), 0) 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): def test_dotted_but_module_not_loaded(self):
# This exercises the AttributeError branch of _dot_lookup. # This exercises the AttributeError branch of _dot_lookup.