diff options
author | Tim Peters <tim.peters@gmail.com> | 2006-03-31 04:11:16 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2006-03-31 04:11:16 (GMT) |
commit | 46cc702b722f6113114f3f4f86aed87ad0c24125 (patch) | |
tree | de0f806bd1724315f726e06036382dc6c9a2d15f /Lib/test/test_decimal.py | |
parent | ef57567de0783e0565e30a61b518336014d4f88c (diff) | |
download | cpython-46cc702b722f6113114f3f4f86aed87ad0c24125.zip cpython-46cc702b722f6113114f3f4f86aed87ad0c24125.tar.gz cpython-46cc702b722f6113114f3f4f86aed87ad0c24125.tar.bz2 |
test_main(): Restore the decimal context that was in
effect at the time test_decimal was imported. Else
running test_decimal had the bad side effect of
permanently changing the decimal context in effect.
That caused text_tokenize to fail if it ran after
test_decimal.
Diffstat (limited to 'Lib/test/test_decimal.py')
-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 6133b2e..844cee0 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. |