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
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.
......
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