Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/tests/storage/test_storage.py
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | def test_content_mimetype_missing(self): | ||||
self.assertEqual(list(actual_missing), [ | self.assertEqual(list(actual_missing), [ | ||||
self.sha1_1, | self.sha1_1, | ||||
self.sha1_2, | self.sha1_2, | ||||
]) | ]) | ||||
# given | # given | ||||
self.storage.content_mimetype_add([{ | self.storage.content_mimetype_add([{ | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'indexer_configuration_id': tool_id, | 'indexer_configuration_id': tool_id, | ||||
}]) | }]) | ||||
# when | # when | ||||
actual_missing = self.storage.content_mimetype_missing(mimetypes) | actual_missing = self.storage.content_mimetype_missing(mimetypes) | ||||
# then | # then | ||||
self.assertEqual(list(actual_missing), [self.sha1_1]) | self.assertEqual(list(actual_missing), [self.sha1_1]) | ||||
def test_content_mimetype_add__drop_duplicate(self): | def test_content_mimetype_add__drop_duplicate(self): | ||||
# given | # given | ||||
tool_id = self.tools['file']['id'] | tool_id = self.tools['file']['id'] | ||||
mimetype_v1 = { | mimetype_v1 = { | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'indexer_configuration_id': tool_id, | 'indexer_configuration_id': tool_id, | ||||
} | } | ||||
# given | # given | ||||
self.storage.content_mimetype_add([mimetype_v1]) | self.storage.content_mimetype_add([mimetype_v1]) | ||||
# when | # when | ||||
actual_mimetypes = list(self.storage.content_mimetype_get( | actual_mimetypes = list(self.storage.content_mimetype_get( | ||||
[self.sha1_2])) | [self.sha1_2])) | ||||
# then | # then | ||||
expected_mimetypes_v1 = [{ | expected_mimetypes_v1 = [{ | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'tool': self.tools['file'], | 'tool': self.tools['file'], | ||||
}] | }] | ||||
self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | ||||
# given | # given | ||||
mimetype_v2 = mimetype_v1.copy() | mimetype_v2 = mimetype_v1.copy() | ||||
mimetype_v2.update({ | mimetype_v2.update({ | ||||
'mimetype': b'text/html', | 'mimetype': 'text/html', | ||||
'encoding': b'us-ascii', | 'encoding': 'us-ascii', | ||||
}) | }) | ||||
self.storage.content_mimetype_add([mimetype_v2]) | self.storage.content_mimetype_add([mimetype_v2]) | ||||
actual_mimetypes = list(self.storage.content_mimetype_get( | actual_mimetypes = list(self.storage.content_mimetype_get( | ||||
[self.sha1_2])) | [self.sha1_2])) | ||||
# mimetype did not change as the v2 was dropped. | # mimetype did not change as the v2 was dropped. | ||||
self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | ||||
def test_content_mimetype_add__update_in_place_duplicate(self): | def test_content_mimetype_add__update_in_place_duplicate(self): | ||||
# given | # given | ||||
tool_id = self.tools['file']['id'] | tool_id = self.tools['file']['id'] | ||||
mimetype_v1 = { | mimetype_v1 = { | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'indexer_configuration_id': tool_id, | 'indexer_configuration_id': tool_id, | ||||
} | } | ||||
# given | # given | ||||
self.storage.content_mimetype_add([mimetype_v1]) | self.storage.content_mimetype_add([mimetype_v1]) | ||||
# when | # when | ||||
actual_mimetypes = list(self.storage.content_mimetype_get( | actual_mimetypes = list(self.storage.content_mimetype_get( | ||||
[self.sha1_2])) | [self.sha1_2])) | ||||
expected_mimetypes_v1 = [{ | expected_mimetypes_v1 = [{ | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'tool': self.tools['file'], | 'tool': self.tools['file'], | ||||
}] | }] | ||||
# then | # then | ||||
self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | self.assertEqual(actual_mimetypes, expected_mimetypes_v1) | ||||
# given | # given | ||||
mimetype_v2 = mimetype_v1.copy() | mimetype_v2 = mimetype_v1.copy() | ||||
mimetype_v2.update({ | mimetype_v2.update({ | ||||
'mimetype': b'text/html', | 'mimetype': 'text/html', | ||||
'encoding': b'us-ascii', | 'encoding': 'us-ascii', | ||||
}) | }) | ||||
self.storage.content_mimetype_add([mimetype_v2], conflict_update=True) | self.storage.content_mimetype_add([mimetype_v2], conflict_update=True) | ||||
actual_mimetypes = list(self.storage.content_mimetype_get( | actual_mimetypes = list(self.storage.content_mimetype_get( | ||||
[self.sha1_2])) | [self.sha1_2])) | ||||
expected_mimetypes_v2 = [{ | expected_mimetypes_v2 = [{ | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/html', | 'mimetype': 'text/html', | ||||
'encoding': b'us-ascii', | 'encoding': 'us-ascii', | ||||
'tool': { | 'tool': { | ||||
'id': 2, | 'id': 2, | ||||
'name': 'file', | 'name': 'file', | ||||
'version': '5.22', | 'version': '5.22', | ||||
'configuration': {'command_line': 'file --mime <filepath>'} | 'configuration': {'command_line': 'file --mime <filepath>'} | ||||
} | } | ||||
}] | }] | ||||
# mimetype did change as the v2 was used to overwrite v1 | # mimetype did change as the v2 was used to overwrite v1 | ||||
self.assertEqual(actual_mimetypes, expected_mimetypes_v2) | self.assertEqual(actual_mimetypes, expected_mimetypes_v2) | ||||
def test_content_mimetype_get(self): | def test_content_mimetype_get(self): | ||||
# given | # given | ||||
tool_id = self.tools['file']['id'] | tool_id = self.tools['file']['id'] | ||||
mimetypes = [self.sha1_2, self.sha1_1] | mimetypes = [self.sha1_2, self.sha1_1] | ||||
mimetype1 = { | mimetype1 = { | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'indexer_configuration_id': tool_id, | 'indexer_configuration_id': tool_id, | ||||
} | } | ||||
# when | # when | ||||
self.storage.content_mimetype_add([mimetype1]) | self.storage.content_mimetype_add([mimetype1]) | ||||
# then | # then | ||||
actual_mimetypes = list(self.storage.content_mimetype_get(mimetypes)) | actual_mimetypes = list(self.storage.content_mimetype_get(mimetypes)) | ||||
# then | # then | ||||
expected_mimetypes = [{ | expected_mimetypes = [{ | ||||
'id': self.sha1_2, | 'id': self.sha1_2, | ||||
'mimetype': b'text/plain', | 'mimetype': 'text/plain', | ||||
'encoding': b'utf-8', | 'encoding': 'utf-8', | ||||
'tool': self.tools['file'] | 'tool': self.tools['file'] | ||||
}] | }] | ||||
self.assertEqual(actual_mimetypes, expected_mimetypes) | self.assertEqual(actual_mimetypes, expected_mimetypes) | ||||
def test_content_language_missing(self): | def test_content_language_missing(self): | ||||
# given | # given | ||||
tool_id = self.tools['pygments']['id'] | tool_id = self.tools['pygments']['id'] | ||||
▲ Show 20 Lines • Show All 1,710 Lines • Show Last 20 Lines |