MCPcopy
hub / github.com/danielgtaylor/python-betterproto / test_to_dict_default_values

Function test_to_dict_default_values

tests/test_features.py:340–475  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

338
339
340def test_to_dict_default_values():
341 @dataclass
342 class TestMessage(betterproto.Message):
343 some_int: int = betterproto.int32_field(1)
344 some_double: float = betterproto.double_field(2)
345 some_str: str = betterproto.string_field(3)
346 some_bool: bool = betterproto.bool_field(4)
347
348 # Empty dict
349 test = TestMessage().from_dict({})
350
351 assert test.to_dict(include_default_values=True) == {
352 "someInt": 0,
353 "someDouble": 0.0,
354 "someStr": "",
355 "someBool": False,
356 }
357
358 test = TestMessage().from_pydict({})
359
360 assert test.to_pydict(include_default_values=True) == {
361 "someInt": 0,
362 "someDouble": 0.0,
363 "someStr": "",
364 "someBool": False,
365 }
366
367 # All default values
368 test = TestMessage().from_dict(
369 {"someInt": 0, "someDouble": 0.0, "someStr": "", "someBool": False}
370 )
371
372 assert test.to_dict(include_default_values=True) == {
373 "someInt": 0,
374 "someDouble": 0.0,
375 "someStr": "",
376 "someBool": False,
377 }
378
379 test = TestMessage().from_pydict(
380 {"someInt": 0, "someDouble": 0.0, "someStr": "", "someBool": False}
381 )
382
383 assert test.to_pydict(include_default_values=True) == {
384 "someInt": 0,
385 "someDouble": 0.0,
386 "someStr": "",
387 "someBool": False,
388 }
389
390 # Some default and some other values
391 @dataclass
392 class TestMessage2(betterproto.Message):
393 some_int: int = betterproto.int32_field(1)
394 some_double: float = betterproto.double_field(2)
395 some_str: str = betterproto.string_field(3)
396 some_bool: bool = betterproto.bool_field(4)
397 some_default_int: int = betterproto.int32_field(5)

Callers

nothing calls this directly

Calls 7

TestMessage2Class · 0.85
TestParentMessageClass · 0.85
from_pydictMethod · 0.80
to_pydictMethod · 0.80
TestMessageClass · 0.70
from_dictMethod · 0.45
to_dictMethod · 0.45

Tested by

no test coverage detected