diff --git a/swh/model/model.py b/swh/model/model.py --- a/swh/model/model.py +++ b/swh/model/model.py @@ -127,6 +127,7 @@ ov = super().to_dict() if ov['visit'] is None: del ov['visit'] + ov['origin'] = self.origin.to_dict() return ov @classmethod 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 @@ -8,14 +8,14 @@ from hypothesis import given from swh.model.model import Content -from swh.model.hypothesis_strategies import objects, origins +from swh.model.hypothesis_strategies import objects, origins, origin_visits @given(objects()) def test_todict_inverse_fromdict(objtype_and_obj): (obj_type, obj) = objtype_and_obj - if obj_type == 'origin': + if obj_type in ('origin', 'origin_visit'): return obj_as_dict = obj.to_dict() @@ -39,6 +39,15 @@ assert type(origin)(url=origin.url) == type(origin).from_dict(obj) +@given(origin_visits()) +def test_todict_origin_visits(origin_visit): + obj = origin_visit.to_dict() + + assert 'type' not in obj['origin'] + origin_visit.origin.type = None + assert origin_visit == type(origin_visit).from_dict(obj) + + def test_content_get_hash(): hashes = dict( sha1=b'foo', sha1_git=b'bar', sha256=b'baz', blake2s256=b'qux')