summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_decimal.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_decimal.py')
-rw-r--r--Lib/test/test_decimal.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 5e77e3c..96f8f7f 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -3665,6 +3665,40 @@ class ContextWithStatement(unittest.TestCase):
self.assertIsNot(new_ctx, set_ctx, 'did not copy the context')
self.assertIs(set_ctx, enter_ctx, '__enter__ returned wrong context')
+ def test_localcontext_kwargs(self):
+ with self.decimal.localcontext(
+ prec=10, rounding=ROUND_HALF_DOWN,
+ Emin=-20, Emax=20, capitals=0,
+ clamp=1
+ ) as ctx:
+ self.assertEqual(ctx.prec, 10)
+ self.assertEqual(ctx.rounding, self.decimal.ROUND_HALF_DOWN)
+ self.assertEqual(ctx.Emin, -20)
+ self.assertEqual(ctx.Emax, 20)
+ self.assertEqual(ctx.capitals, 0)
+ self.assertEqual(ctx.clamp, 1)
+
+ self.assertRaises(TypeError, self.decimal.localcontext, precision=10)
+
+ self.assertRaises(ValueError, self.decimal.localcontext, Emin=1)
+ self.assertRaises(ValueError, self.decimal.localcontext, Emax=-1)
+ self.assertRaises(ValueError, self.decimal.localcontext, capitals=2)
+ self.assertRaises(ValueError, self.decimal.localcontext, clamp=2)
+
+ self.assertRaises(TypeError, self.decimal.localcontext, rounding="")
+ self.assertRaises(TypeError, self.decimal.localcontext, rounding=1)
+
+ self.assertRaises(TypeError, self.decimal.localcontext, flags="")
+ self.assertRaises(TypeError, self.decimal.localcontext, traps="")
+ self.assertRaises(TypeError, self.decimal.localcontext, Emin="")
+ self.assertRaises(TypeError, self.decimal.localcontext, Emax="")
+
+ def test_local_context_kwargs_does_not_overwrite_existing_argument(self):
+ ctx = self.decimal.getcontext()
+ ctx.prec = 28
+ with self.decimal.localcontext(prec=10) as ctx2:
+ self.assertEqual(ctx.prec, 28)
+
def test_nested_with_statements(self):
# Use a copy of the supplied context in the block
Decimal = self.decimal.Decimal