mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
bpo-32630: Use contextvars in decimal (GH-5278)
This commit is contained in:
parent
bc4123b0b3
commit
f13f12d8da
4 changed files with 71 additions and 101 deletions
29
Lib/test/test_asyncio/test_context.py
Normal file
29
Lib/test/test_asyncio/test_context.py
Normal file
|
@ -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')
|
Loading…
Add table
Add a link
Reference in a new issue