Page MenuHomeSoftware Heritage

D5487.diff
No OneTemporary

D5487.diff

diff --git a/swh/model/identifiers.py b/swh/model/identifiers.py
--- a/swh/model/identifiers.py
+++ b/swh/model/identifiers.py
@@ -1228,13 +1228,13 @@
if qualifiers_raw:
for qualifier in qualifiers_raw.split(SWHID_CTXT_SEP):
try:
- k, v = qualifier.split("=")
+ k, v = qualifier.split("=", maxsplit=1)
+ parts["qualifiers"][k] = v
except ValueError:
raise ValidationError(
"Invalid SWHID: invalid qualifier: %(qualifier)s",
params={"qualifier": qualifier},
)
- parts["qualifiers"][k] = v
parts["scheme_version"] = int(parts["scheme_version"])
parts["object_id"] = hash_to_bytes(parts["object_id"])
diff --git a/swh/model/tests/test_identifiers.py b/swh/model/tests/test_identifiers.py
--- a/swh/model/tests/test_identifiers.py
+++ b/swh/model/tests/test_identifiers.py
@@ -1516,6 +1516,14 @@
origin="https://example.org/foo%3Bbar%25baz",
),
),
+ (
+ f"swh:1:cnt:{HASH};origin=https://example.org?project=test",
+ QualifiedSWHID(
+ object_type=ObjectType.CONTENT,
+ object_id=_x(HASH),
+ origin="https://example.org?project=test",
+ ),
+ ),
# visit:
(
f"swh:1:cnt:{HASH};visit=swh:1:snp:{HASH}",
@@ -1570,6 +1578,12 @@
object_type=ObjectType.CONTENT, object_id=_x(HASH), path=b"/foo%bar"
),
),
+ (
+ f"swh:1:cnt:{HASH};path=/foo/bar%3Dbaz",
+ QualifiedSWHID(
+ object_type=ObjectType.CONTENT, object_id=_x(HASH), path=b"/foo/bar=baz"
+ ),
+ ),
# lines
(
f"swh:1:cnt:{HASH};lines=1-18",

File Metadata

Mime Type
text/plain
Expires
Dec 21 2024, 3:51 AM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3219859

Event Timeline