diff --git a/swh/model/hypothesis_strategies.py b/swh/model/hypothesis_strategies.py --- a/swh/model/hypothesis_strategies.py +++ b/swh/model/hypothesis_strategies.py @@ -174,6 +174,7 @@ dict, visit=integers(1, 1000), origin=urls(), + type=optional(sampled_from(["git", "svn", "pypi", "debian"])), status=sampled_from(["created", "ongoing", "full", "partial"]), date=aware_datetimes(), snapshot=optional(sha1_git()), diff --git a/swh/model/model.py b/swh/model/model.py --- a/swh/model/model.py +++ b/swh/model/model.py @@ -323,6 +323,7 @@ validator=attr.validators.in_(["created", "ongoing", "full", "partial"]), ) snapshot = attr.ib(type=Optional[Sha1Git], validator=type_validator()) + type = attr.ib(type=Optional[str], validator=type_validator(), default=None) metadata = attr.ib( type=Optional[ImmutableDict[str, object]], validator=type_validator(), diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py --- a/swh/model/tests/test_model.py +++ b/swh/model/tests/test_model.py @@ -81,7 +81,7 @@ "date": str(date), } assert OriginVisitStatus( - origin=url, visit=42, date=date, status="created", snapshot=None + origin=url, visit=42, date=date, type=None, status="created", snapshot=None ).unique_key() == {"origin": url, "visit": "42", "date": str(date),} assert Snapshot.from_dict({**snapshot_example, "id": id_}).unique_key() == id_ @@ -167,6 +167,7 @@ origin="http://foo/", visit=42, date=datetime.datetime.now(), + type=None, status="ongoing", snapshot=None, )