summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2018-01-27 18:46:46 (GMT)
committerGitHub <noreply@github.com>2018-01-27 18:46:46 (GMT)
commitf13f12d8daa587b5fcc66fe3ed1090a5dadab289 (patch)
tree50f8217d1fcbcdf447e2a21b9e903cb6824ac8af /Lib/test/test_asyncio
parentbc4123b0b380edda774b8bff2fa1bcc96453b440 (diff)
downloadcpython-f13f12d8daa587b5fcc66fe3ed1090a5dadab289.zip
cpython-f13f12d8daa587b5fcc66fe3ed1090a5dadab289.tar.gz
cpython-f13f12d8daa587b5fcc66fe3ed1090a5dadab289.tar.bz2
bpo-32630: Use contextvars in decimal (GH-5278)
Diffstat (limited to 'Lib/test/test_asyncio')
-rw-r--r--Lib/test/test_asyncio/test_context.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_asyncio/test_context.py b/Lib/test/test_asyncio/test_context.py
new file mode 100644
index 0000000..6abddd9f2
--- /dev/null
+++ b/Lib/test/test_asyncio/test_context.py
@@ -0,0 +1,29 @@
+import asyncio
+import decimal
+import unittest
+
+
+class DecimalContextTest(unittest.TestCase):
+
+ def test_asyncio_task_decimal_context(self):
+ async def fractions(t, precision, x, y):
+ with decimal.localcontext() as ctx:
+ ctx.prec = precision
+ a = decimal.Decimal(x) / decimal.Decimal(y)
+ await asyncio.sleep(t)
+ b = decimal.Decimal(x) / decimal.Decimal(y ** 2)
+ return a, b
+
+ async def main():
+ r1, r2 = await asyncio.gather(
+ fractions(0.1, 3, 1, 3), fractions(0.2, 6, 1, 3))
+
+ return r1, r2
+
+ r1, r2 = asyncio.run(main())
+
+ self.assertEqual(str(r1[0]), '0.333')
+ self.assertEqual(str(r1[1]), '0.111')
+
+ self.assertEqual(str(r2[0]), '0.333333')
+ self.assertEqual(str(r2[1]), '0.111111')