diff options
-rw-r--r-- | Lib/test/test_decimal.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 6133b2ea19..844cee0421 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -29,7 +29,8 @@ import glob import os, sys import pickle, copy from decimal import * -from test.test_support import TestSkipped, run_unittest, run_doctest, is_resource_enabled +from test.test_support import (TestSkipped, run_unittest, run_doctest, + is_resource_enabled) import random try: import threading @@ -39,13 +40,14 @@ except ImportError: # Useful Test Constant Signals = getcontext().flags.keys() -# Tests are built around these assumed context defaults -DefaultContext.prec=9 -DefaultContext.rounding=ROUND_HALF_EVEN -DefaultContext.traps=dict.fromkeys(Signals, 0) +# Tests are built around these assumed context defaults. +# test_main() restores the original context. +ORIGINAL_CONTEXT = getcontext().copy() +DefaultContext.prec = 9 +DefaultContext.rounding = ROUND_HALF_EVEN +DefaultContext.traps = dict.fromkeys(Signals, 0) setcontext(DefaultContext) - TESTDATADIR = 'decimaltestdata' if __name__ == '__main__': file = sys.argv[0] @@ -1081,10 +1083,12 @@ def test_main(arith=False, verbose=None): DecimalTest, ] - run_unittest(*test_classes) - import decimal as DecimalModule - run_doctest(DecimalModule, verbose) - + try: + run_unittest(*test_classes) + import decimal as DecimalModule + run_doctest(DecimalModule, verbose) + finally: + setcontext(ORIGINAL_CONTEXT) if __name__ == '__main__': # Calling with no arguments runs all tests. |