Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/tests/test_metadata.py
# Copyright (C) 2017-2018 The Software Heritage developers | # Copyright (C) 2017-2018 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import unittest | import unittest | ||||
import logging | import logging | ||||
from swh.indexer.metadata_dictionary import CROSSWALK_TABLE, MAPPINGS | from swh.indexer.metadata_dictionary import CROSSWALK_TABLE, MAPPINGS | ||||
from swh.indexer.metadata_detector import detect_metadata | from swh.indexer.metadata_detector import detect_metadata | ||||
from swh.indexer.metadata_detector import extract_minimal_metadata_dict | from swh.indexer.metadata_detector import extract_minimal_metadata_dict | ||||
from swh.indexer.metadata import ContentMetadataIndexer | from swh.indexer.metadata import ContentMetadataIndexer | ||||
from swh.indexer.metadata import RevisionMetadataIndexer | from swh.indexer.metadata import RevisionMetadataIndexer | ||||
from swh.indexer.tests.test_utils import MockObjStorage, MockStorage | from swh.indexer.tests.test_utils import MockObjStorage, MockStorage | ||||
from swh.indexer.tests.test_utils import MockIndexerStorage | from swh.indexer.tests.test_utils import MockIndexerStorage | ||||
from swh.model.hashutil import hash_to_bytes | |||||
class ContentMetadataTestIndexer(ContentMetadataIndexer): | class ContentMetadataTestIndexer(ContentMetadataIndexer): | ||||
"""Specific Metadata whose configuration is enough to satisfy the | """Specific Metadata whose configuration is enough to satisfy the | ||||
indexing tests. | indexing tests. | ||||
""" | """ | ||||
def prepare(self): | def prepare(self): | ||||
self.idx_storage = MockIndexerStorage() | self.idx_storage = MockIndexerStorage() | ||||
self.log = logging.getLogger('swh.indexer') | self.log = logging.getLogger('swh.indexer') | ||||
▲ Show 20 Lines • Show All 418 Lines • ▼ Show 20 Lines | def test_compute_metadata_maven(self): | ||||
'schema:codeRepository': | 'schema:codeRepository': | ||||
'http://repo1.maven.org/maven2/com/mycompany/app/my-app', | 'http://repo1.maven.org/maven2/com/mycompany/app/my-app', | ||||
}) | }) | ||||
def test_revision_metadata_indexer(self): | def test_revision_metadata_indexer(self): | ||||
metadata_indexer = RevisionMetadataTestIndexer() | metadata_indexer = RevisionMetadataTestIndexer() | ||||
sha1_gits = [ | sha1_gits = [ | ||||
b'8dbb6aeb036e7fd80664eb8bfd1507881af1ba9f', | hash_to_bytes('8dbb6aeb036e7fd80664eb8bfd1507881af1ba9f'), | ||||
] | ] | ||||
metadata_indexer.run(sha1_gits, 'update-dups') | metadata_indexer.run(sha1_gits, 'update-dups') | ||||
results = metadata_indexer.idx_storage.added_data | results = metadata_indexer.idx_storage.added_data | ||||
expected_results = [('revision_metadata', True, [{ | expected_results = [('revision_metadata', True, [{ | ||||
'id': '8dbb6aeb036e7fd80664eb8bfd1507881af1ba9f', | 'id': hash_to_bytes('8dbb6aeb036e7fd80664eb8bfd1507881af1ba9f'), | ||||
'translated_metadata': { | 'translated_metadata': { | ||||
'@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | '@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | ||||
'url': | 'url': | ||||
'https://github.com/librariesio/yarn-parser#readme', | 'https://github.com/librariesio/yarn-parser#readme', | ||||
'schema:codeRepository': | 'schema:codeRepository': | ||||
'git+https://github.com/librariesio/yarn-parser.git', | 'git+https://github.com/librariesio/yarn-parser.git', | ||||
'schema:author': 'Andrew Nesbitt', | 'schema:author': 'Andrew Nesbitt', | ||||
'license': 'AGPL-3.0', | 'license': 'AGPL-3.0', | ||||
Show All 12 Lines |