Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7124351
D6453.id23440.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
D6453.id23440.diff
View Options
diff --git a/swh/loader/git/converters.py b/swh/loader/git/converters.py
--- a/swh/loader/git/converters.py
+++ b/swh/loader/git/converters.py
@@ -188,7 +188,7 @@
target_type, target = tag.object
if tag.tagger:
author: Optional[Person] = parse_author(tag.tagger)
- if not tag.tag_time:
+ if tag.tag_time is None:
date = None
else:
date = dulwich_tsinfo_to_timestamp(
diff --git a/swh/loader/git/tests/test_converters.py b/swh/loader/git/tests/test_converters.py
--- a/swh/loader/git/tests/test_converters.py
+++ b/swh/loader/git/tests/test_converters.py
@@ -4,6 +4,7 @@
# See top-level LICENSE file for more information
import copy
+import datetime
import os
import shutil
import subprocess
@@ -413,8 +414,6 @@
target = b"641fb6e08ddb2e4fd096dcf18e80b894bf7e25ce"
message = b"some release message"
- import datetime
-
date = datetime.datetime(2007, 12, 5, tzinfo=datetime.timezone.utc).timestamp()
tag = SWHTag(
@@ -497,6 +496,52 @@
assert actual_release == expected_release
+ def test_dulwich_tag_to_release_author_zero_date(self):
+ # to reproduce bug T815 (fixed)
+ sha = hash_to_bytes("6cc1deff5cdcd853428bb63b937f43dd2566c36f")
+ tagger = b"hey dude <hello@mail.org>"
+ target = b"641fb6e08ddb2e4fd096dcf18e80b894bf7e25ce"
+ message = b"some release message"
+ date = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc).timestamp()
+ tag = SWHTag(
+ sha=sha,
+ name=b"blah",
+ type_name=b"tag",
+ target=target,
+ target_type=b"commit",
+ message=message,
+ signature=None,
+ tagger=tagger,
+ tag_time=date,
+ tag_timezone=0,
+ )
+
+ # when
+ actual_release = converters.dulwich_tag_to_release(tag)
+
+ # then
+ expected_release = Release(
+ author=Person(
+ email=b"hello@mail.org",
+ fullname=b"hey dude <hello@mail.org>",
+ name=b"hey dude",
+ ),
+ date=TimestampWithTimezone(
+ negative_utc=False,
+ offset=0,
+ timestamp=Timestamp(seconds=0, microseconds=0,),
+ ),
+ id=sha,
+ message=message,
+ metadata=None,
+ name=b"blah",
+ synthetic=False,
+ target=hash_to_bytes(target.decode()),
+ target_type=ObjectType.REVISION,
+ )
+
+ assert actual_release == expected_release
+
def test_dulwich_tag_to_release_signature(self):
target = b"641fb6e08ddb2e4fd096dcf18e80b894bf7e25ce"
message = b"some release message"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Dec 21 2024, 8:18 AM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3215943
Attached To
D6453: converters: Prevent zero dates from being converted to null dates.
Event Timeline
Log In to Comment