diff --git a/src/betterproto/__init__.py b/src/betterproto/__init__.py index 8eee6f4c..7b76e730 100644 --- a/src/betterproto/__init__.py +++ b/src/betterproto/__init__.py @@ -968,9 +968,9 @@ def dump(self, stream: "SupportsWrite[bytes]", delimit: bool = False) -> None: field_name=field_name, meta=meta ) - if value == self._get_field_default(field_name) and not ( + if not ( selected_in_group or serialize_empty or include_default_value_for_oneof - ): + ) and value == self._get_field_default(field_name): # Default (zero) values are not serialized. Two exceptions are # if this is the selected oneof item or if we know we have to # serialize an empty message (i.e. zero value was explicitly @@ -1074,9 +1074,9 @@ def __len__(self) -> int: field_name=field_name, meta=meta ) - if value == self._get_field_default(field_name) and not ( + if not ( selected_in_group or serialize_empty or include_default_value_for_oneof - ): + ) and value == self._get_field_default(field_name): # Default (zero) values are not serialized. Two exceptions are # if this is the selected oneof item or if we know we have to # serialize an empty message (i.e. zero value was explicitly