From 4e26f7dc4f8842c25f2d78bd38a94b5223b5af57 Mon Sep 17 00:00:00 2001
From: Valentin Lorentz <vlorentz@softwareheritage.org>
Date: Wed, 21 Aug 2019 17:46:11 +0200
Subject: [PATCH] Add missing fields status/type/snapshot/metadata to
 OriginVisit.

---
 swh/model/hypothesis_strategies.py |  4 +++-
 swh/model/model.py                 | 12 ++++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/swh/model/hypothesis_strategies.py b/swh/model/hypothesis_strategies.py
index e20f4ea1..4393e9b2 100644
--- a/swh/model/hypothesis_strategies.py
+++ b/swh/model/hypothesis_strategies.py
@@ -78,7 +78,9 @@ def origin_visits():
     return builds(
         OriginVisit,
         visit=integers(0, 1000),
-        origin=origins())
+        origin=origins(),
+        status=sampled_from(['ongoing', 'full', 'partial']),
+        type=pgsql_text())
 
 
 @composite
diff --git a/swh/model/model.py b/swh/model/model.py
index f6277e46..26a534d5 100644
--- a/swh/model/model.py
+++ b/swh/model/model.py
@@ -104,8 +104,16 @@ class OriginVisit(BaseModel):
     SWH loader."""
     origin = attr.ib(type=Origin)
     date = attr.ib(type=datetime.datetime)
+    status = attr.ib(
+        type=str,
+        validator=attr.validators.in_(['ongoing', 'full', 'partial']))
+    type = attr.ib(type=str)
+    snapshot = attr.ib(type=Sha1Git)
+    metadata = attr.ib(type=Optional[Dict[str, object]],
+                       default=None)
+
     visit = attr.ib(type=Optional[int],
-                    validator=attr.validators.optional([]))
+                    default=None)
     """Should not be set before calling 'origin_visit_add()'."""
 
     def to_dict(self):
@@ -126,7 +134,7 @@ class OriginVisit(BaseModel):
             date=(date
                   if isinstance(date, datetime.datetime)
                   else dateutil.parser.parse(date)),
-            visit=d.get('visit'))
+            **d)
 
 
 class TargetType(Enum):
-- 
GitLab