()
| 322 | |
| 323 | |
| 324 | def test_decimals_compat(): |
| 325 | class IsDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 326 | number: Decimal |
| 327 | |
| 328 | class ListOfDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 329 | numbers: List[Decimal] |
| 330 | |
| 331 | class OptionalListOfDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 332 | numbers: List[Decimal] = None |
| 333 | |
| 334 | class OptionalListOfDecimal2( |
| 335 | Record, coerce=False, decimals=True, serializer="json" |
| 336 | ): |
| 337 | numbers: Optional[List[Decimal]] |
| 338 | |
| 339 | class TupleOfDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 340 | numbers: Tuple[Decimal, ...] |
| 341 | |
| 342 | class SetOfDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 343 | numbers: Set[Decimal] |
| 344 | |
| 345 | class MapOfDecimal(Record, coerce=False, decimals=True, serializer="json"): |
| 346 | numbers: Mapping[str, Decimal] |
| 347 | |
| 348 | n1 = Decimal("1.31341324") |
| 349 | assert IsDecimal.loads(IsDecimal(number=n1).dumps()).number == n1 |
| 350 | n2 = Decimal("3.41569") |
| 351 | assert ListOfDecimal.loads(ListOfDecimal(numbers=[n1, n2]).dumps()).numbers == [ |
| 352 | n1, |
| 353 | n2, |
| 354 | ] |
| 355 | assert ( |
| 356 | OptionalListOfDecimal.loads(OptionalListOfDecimal(numbers=None).dumps()).numbers |
| 357 | is None |
| 358 | ) |
| 359 | assert OptionalListOfDecimal.loads( |
| 360 | OptionalListOfDecimal(numbers=[n2, n1]).dumps() |
| 361 | ).numbers == [n2, n1] |
| 362 | assert ( |
| 363 | OptionalListOfDecimal2.loads( |
| 364 | OptionalListOfDecimal2(numbers=None).dumps() |
| 365 | ).numbers |
| 366 | is None |
| 367 | ) |
| 368 | assert OptionalListOfDecimal2.loads( |
| 369 | OptionalListOfDecimal2(numbers=[n1, n2]).dumps() |
| 370 | ).numbers == [n1, n2] |
| 371 | assert TupleOfDecimal.loads(TupleOfDecimal(numbers=(n1, n2)).dumps()).numbers == ( |
| 372 | n1, |
| 373 | n2, |
| 374 | ) |
| 375 | assert TupleOfDecimal.loads(TupleOfDecimal(numbers=(n2,)).dumps()).numbers == (n2,) |
| 376 | assert SetOfDecimal.loads(SetOfDecimal(numbers={n1, n2}).dumps()).numbers == { |
| 377 | n1, |
| 378 | n2, |
| 379 | } |
| 380 | assert MapOfDecimal.loads( |
| 381 | MapOfDecimal(numbers={"A": n1, "B": n2}).dumps() |
nothing calls this directly
no test coverage detected