Skip to content
Snippets Groups Projects
Commit 2ba43f09 authored by Jenkins for Software Heritage's avatar Jenkins for Software Heritage
Browse files

Update upstream source from tag 'debian/upstream/0.7.0'

Update to upstream version '0.7.0'
with Debian dir 61c3aaf791f4b23b6e9369720b4f00ecc2ba94b6
parents e8267eca da14cc6c
No related branches found
No related tags found
No related merge requests found
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: swh.model Name: swh.model
Version: 0.6.7 Version: 0.7.0
Summary: Software Heritage data model Summary: Software Heritage data model
Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Home-page: https://forge.softwareheritage.org/diffusion/DMOD/
Author: Software Heritage developers Author: Software Heritage developers
......
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: swh.model Name: swh.model
Version: 0.6.7 Version: 0.7.0
Summary: Software Heritage data model Summary: Software Heritage data model
Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Home-page: https://forge.softwareheritage.org/diffusion/DMOD/
Author: Software Heritage developers Author: Software Heritage developers
......
...@@ -52,7 +52,6 @@ swh/model/identifiers.py ...@@ -52,7 +52,6 @@ swh/model/identifiers.py
swh/model/merkle.py swh/model/merkle.py
swh/model/model.py swh/model/model.py
swh/model/py.typed swh/model/py.typed
swh/model/test_identifiers.py
swh/model/toposort.py swh/model/toposort.py
swh/model/validators.py swh/model/validators.py
swh/model/fields/__init__.py swh/model/fields/__init__.py
......
...@@ -9,8 +9,9 @@ import sys ...@@ -9,8 +9,9 @@ import sys
# WARNING: do not import unnecessary things here to keep cli startup time under # WARNING: do not import unnecessary things here to keep cli startup time under
# control # control
import click import click
from swh.core.cli import swh as swh_cli_group
from swh.core.cli import swh as swh_cli_group
from swh.model.identifiers import SWHID
CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"]) CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
...@@ -25,17 +26,19 @@ _DULWICH_TYPES = { ...@@ -25,17 +26,19 @@ _DULWICH_TYPES = {
class SWHIDParamType(click.ParamType): class SWHIDParamType(click.ParamType):
name = "persistent identifier" """Click argument that accepts SWHID and return them as
:class:`swh.model.identifiers.SWHID` instances """
name = "SWHID"
def convert(self, value, param, ctx): def convert(self, value, param, ctx) -> SWHID:
from swh.model.exceptions import ValidationError from swh.model.exceptions import ValidationError
from swh.model.identifiers import parse_swhid from swh.model.identifiers import parse_swhid
try: try:
parse_swhid(value) return parse_swhid(value)
return value # return as string, as we need just that
except ValidationError as e: except ValidationError as e:
self.fail("%s is not a valid SWHID. %s." % (value, e), param, ctx) self.fail(f'"{value}" is not a valid SWHID: {e}', param, ctx)
def swhid_of_file(path): def swhid_of_file(path):
...@@ -209,7 +212,7 @@ def identify(obj_type, verify, show_filename, follow_symlinks, objects): ...@@ -209,7 +212,7 @@ def identify(obj_type, verify, show_filename, follow_symlinks, objects):
if verify: if verify:
swhid = next(results)[1] swhid = next(results)[1]
if verify == swhid: if str(verify) == swhid:
click.echo("SWHID match: %s" % swhid) click.echo("SWHID match: %s" % swhid)
sys.exit(0) sys.exit(0)
else: else:
......
# Copyright (C) 2020 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
from swh.model.identifiers import SWHID
def test_swhid_hash():
object_id = "94a9ed024d3859793618152ea559a168bbcbb5e2"
assert hash(SWHID(object_type="directory", object_id=object_id)) == hash(
SWHID(object_type="directory", object_id=object_id)
)
assert hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
) == hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
)
# Different order of the dictionary, so the underlying order of the tuple in
# ImmutableDict is different.
assert hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
) == hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"baz": "qux", "foo": "bar"},
)
)
def test_swhid_eq():
object_id = "94a9ed024d3859793618152ea559a168bbcbb5e2"
assert SWHID(object_type="directory", object_id=object_id) == SWHID(
object_type="directory", object_id=object_id
)
assert SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
) == SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
assert SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
) == SWHID(
object_type="directory",
object_id=object_id,
metadata={"baz": "qux", "foo": "bar"},
)
...@@ -1075,3 +1075,69 @@ TS_DICTS_INVALID_TIMESTAMP = [ ...@@ -1075,3 +1075,69 @@ TS_DICTS_INVALID_TIMESTAMP = [
def test_normalize_timestamp_dict_invalid_timestamp(dict_input): def test_normalize_timestamp_dict_invalid_timestamp(dict_input):
with pytest.raises(ValueError, match="non-integer timestamp"): with pytest.raises(ValueError, match="non-integer timestamp"):
normalize_timestamp(dict_input) normalize_timestamp(dict_input)
def test_swhid_hash():
object_id = "94a9ed024d3859793618152ea559a168bbcbb5e2"
assert hash(SWHID(object_type="directory", object_id=object_id)) == hash(
SWHID(object_type="directory", object_id=object_id)
)
assert hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
) == hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
)
# Different order of the dictionary, so the underlying order of the tuple in
# ImmutableDict is different.
assert hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
) == hash(
SWHID(
object_type="directory",
object_id=object_id,
metadata={"baz": "qux", "foo": "bar"},
)
)
def test_swhid_eq():
object_id = "94a9ed024d3859793618152ea559a168bbcbb5e2"
assert SWHID(object_type="directory", object_id=object_id) == SWHID(
object_type="directory", object_id=object_id
)
assert SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
) == SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
)
assert SWHID(
object_type="directory",
object_id=object_id,
metadata={"foo": "bar", "baz": "qux"},
) == SWHID(
object_type="directory",
object_id=object_id,
metadata={"baz": "qux", "foo": "bar"},
)
...@@ -14,7 +14,7 @@ commands = ...@@ -14,7 +14,7 @@ commands =
[testenv:black] [testenv:black]
skip_install = true skip_install = true
deps = deps =
black black==19.10b0
commands = commands =
{envpython} -m black --check swh {envpython} -m black --check swh
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment