diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py
index c5dbc59cfba1f49d96e73dcf144c014ca79d4333..35d5695d780159d7eec540c8e7a5dab11802029e 100644
--- a/swh/model/tests/test_model.py
+++ b/swh/model/tests/test_model.py
@@ -6,6 +6,8 @@
 import copy
 import datetime
 
+import attr
+from attrs_strict import AttributeTypeError
 from hypothesis import given
 from hypothesis.strategies import binary
 import pytest
@@ -70,6 +72,33 @@ def test_todict_origin_visit_updates(origin_visit_update):
     assert origin_visit_update == type(origin_visit_update).from_dict(obj)
 
 
+def test_timestamp_seconds():
+    attr.validate(Timestamp(seconds=0, microseconds=0))
+    with pytest.raises(AttributeTypeError):
+        Timestamp(seconds='0', microseconds=0)
+
+    attr.validate(Timestamp(seconds=2**63-1, microseconds=0))
+    with pytest.raises(ValueError):
+        Timestamp(seconds=2**63, microseconds=0)
+
+    attr.validate(Timestamp(seconds=-2**63, microseconds=0))
+    with pytest.raises(ValueError):
+        Timestamp(seconds=-2**63-1, microseconds=0)
+
+
+def test_timestamp_microseconds():
+    attr.validate(Timestamp(seconds=0, microseconds=0))
+    with pytest.raises(AttributeTypeError):
+        Timestamp(seconds=0, microseconds='0')
+
+    attr.validate(Timestamp(seconds=0, microseconds=10**6-1))
+    with pytest.raises(ValueError):
+        Timestamp(seconds=0, microseconds=10**6)
+
+    with pytest.raises(ValueError):
+        Timestamp(seconds=0, microseconds=-1)
+
+
 def test_timestampwithtimezone_from_datetime():
     tz = datetime.timezone(datetime.timedelta(minutes=+60))
     date = datetime.datetime(