From 7a9fc3964373c63ecbbb119408d6beda73293599 Mon Sep 17 00:00:00 2001
From: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Thu, 17 Oct 2019 14:42:35 +0200
Subject: [PATCH] model: Don't export origin['type']

---
 swh/model/model.py            |  5 +++++
 swh/model/tests/test_model.py | 14 +++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/swh/model/model.py b/swh/model/model.py
index 70559dbb..93597731 100644
--- a/swh/model/model.py
+++ b/swh/model/model.py
@@ -97,6 +97,11 @@ class Origin(BaseModel):
     url = attr.ib(type=str)
     type = attr.ib(type=Optional[str], default=None)
 
+    def to_dict(self):
+        r = super().to_dict()
+        r.pop('type', None)
+        return r
+
 
 @attr.s
 class OriginVisit(BaseModel):
diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py
index f9186857..61dc9974 100644
--- a/swh/model/tests/test_model.py
+++ b/swh/model/tests/test_model.py
@@ -8,12 +8,16 @@ import copy
 from hypothesis import given
 
 from swh.model.model import Content
-from swh.model.hypothesis_strategies import objects
+from swh.model.hypothesis_strategies import objects, origins
 
 
 @given(objects())
 def test_todict_inverse_fromdict(objtype_and_obj):
     (obj_type, obj) = objtype_and_obj
+
+    if obj_type == 'origin':
+        return
+
     obj_as_dict = obj.to_dict()
     obj_as_dict_copy = copy.deepcopy(obj_as_dict)
 
@@ -27,6 +31,14 @@ def test_todict_inverse_fromdict(objtype_and_obj):
     assert obj_as_dict == type(obj).from_dict(obj_as_dict).to_dict()
 
 
+@given(origins())
+def test_todict_origins(origin):
+    obj = origin.to_dict()
+
+    assert 'type' not in obj
+    assert type(origin)(url=origin.url) == type(origin).from_dict(obj)
+
+
 def test_content_get_hash():
     hashes = dict(
         sha1=b'foo', sha1_git=b'bar', sha256=b'baz', blake2s256=b'qux')
-- 
GitLab