summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-06 17:31:36 (GMT)
committerGitHub <noreply@github.com>2024-06-06 17:31:36 (GMT)
commitb03d71d0d8415281e71ae4f1455222db4b4b66d2 (patch)
tree93390ec0b2bb894642b7bbc3e67efb2e60bc92a4
parent94eee7875969a2f57238283d5b078bdc316fc7eb (diff)
downloadcpython-b03d71d0d8415281e71ae4f1455222db4b4b66d2.zip
cpython-b03d71d0d8415281e71ae4f1455222db4b4b66d2.tar.gz
cpython-b03d71d0d8415281e71ae4f1455222db4b4b66d2.tar.bz2
[3.12] Restore decimal context after decimal doctests (GH-120149) (GH-120168)
The modified context caused tests failures in several other tests. (cherry picked from commit 2d7ff6e0e7d4c08ba84079a5c19a4a485626e1de) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-rw-r--r--Lib/test/test_decimal.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 1feaf2e..36d4157 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -5924,13 +5924,17 @@ def load_tests(loader, tests, pattern):
if TODO_TESTS is None:
from doctest import DocTestSuite, IGNORE_EXCEPTION_DETAIL
+ orig_context = orig_sys_decimal.getcontext().copy()
for mod in C, P:
if not mod:
continue
def setUp(slf, mod=mod):
sys.modules['decimal'] = mod
- def tearDown(slf):
+ init(mod)
+ def tearDown(slf, mod=mod):
sys.modules['decimal'] = orig_sys_decimal
+ mod.setcontext(ORIGINAL_CONTEXT[mod].copy())
+ orig_sys_decimal.setcontext(orig_context.copy())
optionflags = IGNORE_EXCEPTION_DETAIL if mod is C else 0
sys.modules['decimal'] = mod
tests.addTest(DocTestSuite(mod, setUp=setUp, tearDown=tearDown,
@@ -5945,8 +5949,8 @@ def setUpModule():
TEST_ALL = ARITH if ARITH is not None else is_resource_enabled('decimal')
def tearDownModule():
- if C: C.setcontext(ORIGINAL_CONTEXT[C])
- P.setcontext(ORIGINAL_CONTEXT[P])
+ if C: C.setcontext(ORIGINAL_CONTEXT[C].copy())
+ P.setcontext(ORIGINAL_CONTEXT[P].copy())
if not C:
warnings.warn('C tests skipped: no module named _decimal.',
UserWarning)