Fix is_set for optional proto3 fields

This commit is contained in:
James Hilton-Balfe
2022-04-24 00:37:15 +01:00
committed by GitHub
parent 6f7d706a8e
commit 3ca092a724
2 changed files with 18 additions and 1 deletions

View File

@@ -517,3 +517,15 @@ def test_copyability():
assert spam == deepcopied
assert spam is not deepcopied
assert spam.baz is not deepcopied.baz
def test_is_set():
@dataclass
class Spam(betterproto.Message):
foo: bool = betterproto.bool_field(1)
bar: Optional[int] = betterproto.int32_field(2, optional=True)
assert not Spam().is_set("foo")
assert not Spam().is_set("bar")
assert Spam(foo=True).is_set("foo")
assert Spam(foo=True, bar=0).is_set("bar")