Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/tests/test_metadata.py
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | def test_merge_values(self): | ||||
merge_values('a', 'b'), | merge_values('a', 'b'), | ||||
['a', 'b']) | ['a', 'b']) | ||||
self.assertEqual( | self.assertEqual( | ||||
merge_values(['a', 'b'], 'c'), | merge_values(['a', 'b'], 'c'), | ||||
['a', 'b', 'c']) | ['a', 'b', 'c']) | ||||
self.assertEqual( | self.assertEqual( | ||||
merge_values('a', ['b', 'c']), | merge_values('a', ['b', 'c']), | ||||
['a', 'b', 'c']) | ['a', 'b', 'c']) | ||||
self.assertEqual( | self.assertEqual( | ||||
merge_values({'@list': ['a']}, {'@list': ['b']}), | merge_values({'@list': ['a']}, {'@list': ['b']}), | ||||
{'@list': ['a', 'b']}) | {'@list': ['a', 'b']}) | ||||
self.assertEqual( | self.assertEqual( | ||||
merge_values({'@list': ['a', 'b']}, {'@list': ['c']}), | merge_values({'@list': ['a', 'b']}, {'@list': ['c']}), | ||||
{'@list': ['a', 'b', 'c']}) | {'@list': ['a', 'b', 'c']}) | ||||
with self.assertRaises(ValueError): | with self.assertRaises(ValueError): | ||||
merge_values({'@list': ['a']}, 'b') | merge_values({'@list': ['a']}, 'b') | ||||
with self.assertRaises(ValueError): | with self.assertRaises(ValueError): | ||||
merge_values('a', {'@list': ['b']}) | merge_values('a', {'@list': ['b']}) | ||||
with self.assertRaises(ValueError): | with self.assertRaises(ValueError): | ||||
merge_values({'@list': ['a']}, ['b']) | merge_values({'@list': ['a']}, ['b']) | ||||
with self.assertRaises(ValueError): | with self.assertRaises(ValueError): | ||||
merge_values(['a'], {'@list': ['b']}) | merge_values(['a'], {'@list': ['b']}) | ||||
self.assertEqual( | |||||
merge_values('a', None), | |||||
'a') | |||||
self.assertEqual( | |||||
merge_values(['a', 'b'], None), | |||||
['a', 'b']) | |||||
self.assertEqual( | |||||
merge_values(None, ['b', 'c']), | |||||
['b', 'c']) | |||||
self.assertEqual( | |||||
merge_values({'@list': ['a']}, None), | |||||
{'@list': ['a']}) | |||||
self.assertEqual( | |||||
merge_values(None, {'@list': ['a']}), | |||||
{'@list': ['a']}) | |||||
def test_compute_metadata_none(self): | def test_compute_metadata_none(self): | ||||
""" | """ | ||||
testing content empty content is empty | testing content empty content is empty | ||||
should return None | should return None | ||||
""" | """ | ||||
# given | # given | ||||
content = b"" | content = b"" | ||||
▲ Show 20 Lines • Show All 676 Lines • ▼ Show 20 Lines | end""" | ||||
self.assertEqual(result, { | self.assertEqual(result, { | ||||
'@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | '@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | ||||
'type': 'SoftwareSourceCode', | 'type': 'SoftwareSourceCode', | ||||
}) | }) | ||||
def test_gemspec_invalid_author(self): | def test_gemspec_invalid_author(self): | ||||
raw_content = b""" | raw_content = b""" | ||||
Gem::Specification.new do |s| | Gem::Specification.new do |s| | ||||
s.author = ["Ruby Coder"] | |||||
end""" | |||||
result = MAPPINGS['GemspecMapping'].translate(raw_content) | |||||
self.assertEqual(result, { | |||||
'@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | |||||
'type': 'SoftwareSourceCode', | |||||
}) | |||||
raw_content = b""" | |||||
Gem::Specification.new do |s| | |||||
s.author = "Ruby Coder1", | s.author = "Ruby Coder1", | ||||
end""" | end""" | ||||
result = MAPPINGS['GemspecMapping'].translate(raw_content) | result = MAPPINGS['GemspecMapping'].translate(raw_content) | ||||
self.assertEqual(result, { | self.assertEqual(result, { | ||||
'@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | '@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | ||||
'type': 'SoftwareSourceCode', | 'type': 'SoftwareSourceCode', | ||||
}) | }) | ||||
raw_content = b""" | |||||
Gem::Specification.new do |s| | |||||
s.authors = ["Ruby Coder1", ["Ruby Coder2"]] | |||||
end""" | |||||
result = MAPPINGS['GemspecMapping'].translate(raw_content) | |||||
self.assertEqual(result, { | |||||
'@context': 'https://doi.org/10.5063/schema/codemeta-2.0', | |||||
'type': 'SoftwareSourceCode', | |||||
'author': ['Ruby Coder1'], | |||||
}) | |||||
def test_revision_metadata_indexer(self): | def test_revision_metadata_indexer(self): | ||||
metadata_indexer = RevisionMetadataTestIndexer() | metadata_indexer = RevisionMetadataTestIndexer() | ||||
fill_obj_storage(metadata_indexer.objstorage) | fill_obj_storage(metadata_indexer.objstorage) | ||||
fill_storage(metadata_indexer.storage) | fill_storage(metadata_indexer.storage) | ||||
tool = metadata_indexer.idx_storage.indexer_configuration_get( | tool = metadata_indexer.idx_storage.indexer_configuration_get( | ||||
{'tool_'+k: v for (k, v) in TRANSLATOR_TOOL.items()}) | {'tool_'+k: v for (k, v) in TRANSLATOR_TOOL.items()}) | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |