Merge pull request #81 from discord/serialized_on_wire_repeated
Always set serialized_on_wire for all parsed message fields
This commit is contained in:
		| @@ -724,6 +724,9 @@ class Message(ABC): | ||||
|         Parse the binary encoded Protobuf into this message instance. This | ||||
|         returns the instance itself and is therefore assignable and chainable. | ||||
|         """ | ||||
|         # Got some data over the wire | ||||
|         self._serialized_on_wire = True | ||||
|  | ||||
|         for parsed in parse_fields(data): | ||||
|             field_name = self._betterproto.field_name_by_number.get(parsed.number) | ||||
|             if not field_name: | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| import betterproto | ||||
| from dataclasses import dataclass | ||||
| from typing import Optional | ||||
| from typing import Optional, List, Dict | ||||
|  | ||||
|  | ||||
| def test_has_field(): | ||||
| @@ -32,6 +32,25 @@ def test_has_field(): | ||||
|     foo.bar = Bar() | ||||
|     assert betterproto.serialized_on_wire(foo.bar) is False | ||||
|  | ||||
|     @dataclass | ||||
|     class WithCollections(betterproto.Message): | ||||
|         test_list: List[str] = betterproto.string_field(1) | ||||
|         test_map: Dict[str, str] = betterproto.map_field( | ||||
|             2, betterproto.TYPE_STRING, betterproto.TYPE_STRING | ||||
|         ) | ||||
|  | ||||
|     # Is always set from parse, even if all collections are empty | ||||
|     with_collections_empty = WithCollections().parse(bytes(WithCollections())) | ||||
|     assert betterproto.serialized_on_wire(with_collections_empty) == True | ||||
|     with_collections_list = WithCollections().parse( | ||||
|         bytes(WithCollections(test_list=["a", "b", "c"])) | ||||
|     ) | ||||
|     assert betterproto.serialized_on_wire(with_collections_list) == True | ||||
|     with_collections_map = WithCollections().parse( | ||||
|         bytes(WithCollections(test_map={"a": "b", "c": "d"})) | ||||
|     ) | ||||
|     assert betterproto.serialized_on_wire(with_collections_map) == True | ||||
|  | ||||
|  | ||||
| def test_class_init(): | ||||
|     @dataclass | ||||
|   | ||||
		Reference in New Issue
	
	Block a user