summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_decimal.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2006-03-31 04:11:16 (GMT)
committerTim Peters <tim.peters@gmail.com>2006-03-31 04:11:16 (GMT)
commit46cc702b722f6113114f3f4f86aed87ad0c24125 (patch)
treede0f806bd1724315f726e06036382dc6c9a2d15f /Lib/test/test_decimal.py
parentef57567de0783e0565e30a61b518336014d4f88c (diff)
downloadcpython-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.py24
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.