diff --git a/swh/model/model.py b/swh/model/model.py index 7bed1c37540b3ba02311968413007c7a638b9696..1e5f555efdc8b09790f0a08a5072a0d632b7bdd6 100644 --- a/swh/model/model.py +++ b/swh/model/model.py @@ -289,8 +289,8 @@ class Person(BaseModel): object_type: Final = "person" fullname = attr.ib(type=bytes, validator=type_validator()) - name = attr.ib(type=Optional[bytes], validator=type_validator()) - email = attr.ib(type=Optional[bytes], validator=type_validator()) + name = attr.ib(type=Optional[bytes], validator=type_validator(), eq=False) + email = attr.ib(type=Optional[bytes], validator=type_validator(), eq=False) @classmethod def from_fullname(cls, fullname: bytes): diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py index 6d97e59f09603972371f1fe97dc07174875f6190..0efbcfe4d74998a89e1064a1c942c396fb993051 100644 --- a/swh/model/tests/test_model.py +++ b/swh/model/tests/test_model.py @@ -646,6 +646,18 @@ def test_git_author_line_to_author(): assert expected_person == Person.from_fullname(person) +def test_person_comparison(): + """Check only the fullname attribute is used to compare Person objects + + """ + person = Person(fullname=b"p1", name=None, email=None) + assert attr.evolve(person, name=b"toto") == person + assert attr.evolve(person, email=b"toto@example.com") == person + + person = Person(fullname=b"", name=b"toto", email=b"toto@example.com") + assert attr.evolve(person, fullname=b"dude") != person + + # Content