summaryrefslogtreecommitdiff
path: root/Lib/test/test_xml_etree.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_xml_etree.py')
-rw-r--r--Lib/test/test_xml_etree.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index c79b5462b9..5a8824a78f 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -26,7 +26,7 @@ from itertools import product, islice
from test import support
from test.support import os_helper
from test.support import warnings_helper
-from test.support import findfile, gc_collect, swap_attr
+from test.support import findfile, gc_collect, swap_attr, swap_item
from test.support.import_helper import import_fresh_module
from test.support.os_helper import TESTFN
@@ -167,12 +167,11 @@ class ElementTestCase:
cls.modules = {pyET, ET}
def pickleRoundTrip(self, obj, name, dumper, loader, proto):
- save_m = sys.modules[name]
try:
- sys.modules[name] = dumper
- temp = pickle.dumps(obj, proto)
- sys.modules[name] = loader
- result = pickle.loads(temp)
+ with swap_item(sys.modules, name, dumper):
+ temp = pickle.dumps(obj, proto)
+ with swap_item(sys.modules, name, loader):
+ result = pickle.loads(temp)
except pickle.PicklingError as pe:
# pyET must be second, because pyET may be (equal to) ET.
human = dict([(ET, "cET"), (pyET, "pyET")])
@@ -180,8 +179,6 @@ class ElementTestCase:
% (obj,
human.get(dumper, dumper),
human.get(loader, loader))) from pe
- finally:
- sys.modules[name] = save_m
return result
def assertEqualElements(self, alice, bob):