Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/tests/test_utils.py
Show First 20 Lines • Show All 653 Lines • ▼ Show 20 Lines | class CommonIndexerWithErrorsTest: | ||||
def test_wrong_unknown_configuration_tool_range(self): | def test_wrong_unknown_configuration_tool_range(self): | ||||
"""Range Indexer with unknown configuration tool fails check""" | """Range Indexer with unknown configuration tool fails check""" | ||||
if self.RangeIndexer is not None: | if self.RangeIndexer is not None: | ||||
with self.assertRaisesRegex(ValueError, 'Tools None is unknown'): | with self.assertRaisesRegex(ValueError, 'Tools None is unknown'): | ||||
self.RangeIndexer() | self.RangeIndexer() | ||||
class CommonContentIndexerTest: | class CommonContentIndexerTest: | ||||
def assert_results_ok(self, actual_results, expected_results=None): | def get_indexer_results(self, ids): | ||||
"""Override this for indexers that don't have a mock storage.""" | |||||
return self.indexer.idx_storage.state | |||||
def assert_results_ok(self, sha1s, expected_results=None): | |||||
actual_results = self.get_indexer_results(sha1s) | |||||
if expected_results is None: | if expected_results is None: | ||||
expected_results = self.expected_results | expected_results = self.expected_results | ||||
for indexed_data in actual_results: | for indexed_data in actual_results: | ||||
_id = indexed_data['id'] | _id = indexed_data['id'] | ||||
self.assertEqual(indexed_data, expected_results[_id]) | self.assertEqual(indexed_data, expected_results[_id]) | ||||
_tool_id = indexed_data['indexer_configuration_id'] | _tool_id = indexed_data['indexer_configuration_id'] | ||||
self.assertEqual(_tool_id, self.indexer.tool['id']) | self.assertEqual(_tool_id, self.indexer.tool['id']) | ||||
def test_index(self): | def test_index(self): | ||||
"""Known sha1 have their data indexed | """Known sha1 have their data indexed | ||||
""" | """ | ||||
sha1s = [self.id0, self.id1, self.id2] | sha1s = [self.id0, self.id1, self.id2] | ||||
# when | # when | ||||
self.indexer.run(sha1s, policy_update='update-dups') | self.indexer.run(sha1s, policy_update='update-dups') | ||||
actual_results = self.indexer.idx_storage.state | self.assert_results_ok(sha1s) | ||||
self.assertTrue(self.indexer.idx_storage.conflict_update) | |||||
self.assert_results_ok(actual_results) | |||||
# 2nd pass | # 2nd pass | ||||
self.indexer.run(sha1s, policy_update='ignore-dups') | self.indexer.run(sha1s, policy_update='ignore-dups') | ||||
self.assertFalse(self.indexer.idx_storage.conflict_update) | self.assert_results_ok(sha1s) | ||||
self.assert_results_ok(actual_results) | |||||
def test_index_one_unknown_sha1(self): | def test_index_one_unknown_sha1(self): | ||||
"""Unknown sha1 are not indexed""" | """Unknown sha1 are not indexed""" | ||||
sha1s = [self.id1, | sha1s = [self.id1, | ||||
'799a5ef812c53907562fe379d4b3851e69c7cb15', # unknown | '799a5ef812c53907562fe379d4b3851e69c7cb15', # unknown | ||||
'800a5ef812c53907562fe379d4b3851e69c7cb15'] # unknown | '800a5ef812c53907562fe379d4b3851e69c7cb15'] # unknown | ||||
# when | # when | ||||
self.indexer.run(sha1s, policy_update='update-dups') | self.indexer.run(sha1s, policy_update='update-dups') | ||||
actual_results = self.indexer.idx_storage.state | |||||
# then | # then | ||||
expected_results = { | expected_results = { | ||||
k: v for k, v in self.expected_results.items() if k in sha1s | k: v for k, v in self.expected_results.items() if k in sha1s | ||||
} | } | ||||
self.assert_results_ok(actual_results, expected_results) | self.assert_results_ok(sha1s, expected_results) | ||||
class CommonContentIndexerRangeTest: | class CommonContentIndexerRangeTest: | ||||
"""Allows to factorize tests on range indexer. | """Allows to factorize tests on range indexer. | ||||
""" | """ | ||||
def assert_results_ok(self, start, end, actual_results, | def assert_results_ok(self, start, end, actual_results, | ||||
expected_results=None): | expected_results=None): | ||||
▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines |