diff options
author | Yury Selivanov <yury@magic.io> | 2018-01-27 18:46:46 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-27 18:46:46 (GMT) |
commit | f13f12d8daa587b5fcc66fe3ed1090a5dadab289 (patch) | |
tree | 50f8217d1fcbcdf447e2a21b9e903cb6824ac8af /Lib/test/test_asyncio | |
parent | bc4123b0b380edda774b8bff2fa1bcc96453b440 (diff) | |
download | cpython-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.py | 29 |
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') |