MCPcopy
hub / github.com/faust-streaming/faust / test_decimals

Function test_decimals

tests/functional/test_models.py:261–321  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

259
260
261def test_decimals():
262 class IsDecimal(Record, coerce=True, serializer="json"):
263 number: Decimal
264
265 class ListOfDecimal(Record, coerce=True, serializer="json"):
266 numbers: List[Decimal]
267
268 class OptionalListOfDecimal(Record, coerce=True, serializer="json"):
269 numbers: List[Decimal] = None
270
271 class OptionalListOfDecimal2(Record, coerce=True, serializer="json"):
272 numbers: Optional[List[Decimal]]
273
274 class TupleOfDecimal(Record, coerce=True, serializer="json"):
275 numbers: Tuple[Decimal, ...]
276
277 class SetOfDecimal(Record, coerce=True, serializer="json"):
278 numbers: Set[Decimal]
279
280 class MapOfDecimal(Record, coerce=True, serializer="json"):
281 numbers: Mapping[str, Decimal]
282
283 n1 = Decimal("1.31341324")
284 assert IsDecimal.loads(IsDecimal(number=n1).dumps()).number == n1
285 n2 = Decimal("3.41569")
286 assert ListOfDecimal.loads(ListOfDecimal(numbers=[n1, n2]).dumps()).numbers == [
287 n1,
288 n2,
289 ]
290 assert (
291 OptionalListOfDecimal.loads(OptionalListOfDecimal(numbers=None).dumps()).numbers
292 is None
293 )
294 assert OptionalListOfDecimal.loads(
295 OptionalListOfDecimal(numbers=[n2, n1]).dumps()
296 ).numbers == [n2, n1]
297 assert (
298 OptionalListOfDecimal2.loads(
299 OptionalListOfDecimal2(numbers=None).dumps()
300 ).numbers
301 is None
302 )
303 assert OptionalListOfDecimal2.loads(
304 OptionalListOfDecimal2(numbers=[n1, n2]).dumps()
305 ).numbers == [n1, n2]
306 assert TupleOfDecimal.loads(TupleOfDecimal(numbers=(n1, n2)).dumps()).numbers == (
307 n1,
308 n2,
309 )
310 assert TupleOfDecimal.loads(TupleOfDecimal(numbers=(n2,)).dumps()).numbers == (n2,)
311 assert SetOfDecimal.loads(SetOfDecimal(numbers={n1, n2}).dumps()).numbers == {
312 n1,
313 n2,
314 }
315 assert MapOfDecimal.loads(
316 MapOfDecimal(numbers={"A": n1, "B": n2}).dumps()
317 ).numbers == {"A": n1, "B": n2}
318

Callers

nothing calls this directly

Calls 10

IsDecimalClass · 0.85
ListOfDecimalClass · 0.85
TupleOfDecimalClass · 0.85
SetOfDecimalClass · 0.85
MapOfDecimalClass · 0.85
loadsMethod · 0.45
dumpsMethod · 0.45
from_dataMethod · 0.45

Tested by

no test coverage detected