Commit f751c8c3 authored by Tim Peters's avatar Tim Peters

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.
parent 5d34fc81
...@@ -29,7 +29,8 @@ import glob ...@@ -29,7 +29,8 @@ import glob
import os, sys import os, sys
import pickle, copy import pickle, copy
from decimal import * 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 import random
try: try:
import threading import threading
...@@ -39,13 +40,14 @@ except ImportError: ...@@ -39,13 +40,14 @@ except ImportError:
# Useful Test Constant # Useful Test Constant
Signals = getcontext().flags.keys() Signals = getcontext().flags.keys()
# Tests are built around these assumed context defaults # Tests are built around these assumed context defaults.
DefaultContext.prec=9 # test_main() restores the original context.
DefaultContext.rounding=ROUND_HALF_EVEN ORIGINAL_CONTEXT = getcontext().copy()
DefaultContext.traps=dict.fromkeys(Signals, 0) DefaultContext.prec = 9
DefaultContext.rounding = ROUND_HALF_EVEN
DefaultContext.traps = dict.fromkeys(Signals, 0)
setcontext(DefaultContext) setcontext(DefaultContext)
TESTDATADIR = 'decimaltestdata' TESTDATADIR = 'decimaltestdata'
if __name__ == '__main__': if __name__ == '__main__':
file = sys.argv[0] file = sys.argv[0]
...@@ -1081,10 +1083,12 @@ def test_main(arith=False, verbose=None): ...@@ -1081,10 +1083,12 @@ def test_main(arith=False, verbose=None):
DecimalTest, DecimalTest,
] ]
run_unittest(*test_classes) try:
import decimal as DecimalModule run_unittest(*test_classes)
run_doctest(DecimalModule, verbose) import decimal as DecimalModule
run_doctest(DecimalModule, verbose)
finally:
setcontext(ORIGINAL_CONTEXT)
if __name__ == '__main__': if __name__ == '__main__':
# Calling with no arguments runs all tests. # Calling with no arguments runs all tests.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment