bpo-34179: Make sure decimal context doesn't affect other tests. (#… · python/cpython@938045f

Original file line numberDiff line numberDiff line change

@@ -872,19 +872,19 @@ def convert_values(ns_timestamps):

872872

ns_timestamps = self._rounding_values(use_float)

873873

valid_values = convert_values(ns_timestamps)

874874

for time_rnd, decimal_rnd in ROUNDING_MODES :

875-

context = decimal.getcontext()

876-

context.rounding = decimal_rnd

877-
878-

for value in valid_values:

879-

debug_info = {'value': value, 'rounding': decimal_rnd}

880-

try:

881-

result = pytime_converter(value, time_rnd)

882-

expected = expected_func(value)

883-

except Exception as exc:

884-

self.fail("Error on timestamp conversion: %s" % debug_info)

885-

self.assertEqual(result,

886-

expected,

887-

debug_info)

875+

with decimal.localcontext() as context:

876+

context.rounding = decimal_rnd

877+
878+

for value in valid_values:

879+

debug_info = {'value': value, 'rounding': decimal_rnd}

880+

try:

881+

result = pytime_converter(value, time_rnd)

882+

expected = expected_func(value)

883+

except Exception as exc:

884+

self.fail("Error on timestamp conversion: %s" % debug_info)

885+

self.assertEqual(result,

886+

expected,

887+

debug_info)

888888
889889

# test overflow

890890

ns = self.OVERFLOW_SECONDS * SEC_TO_NS