Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9338517
D6532.id23767.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
D6532.id23767.diff
View Options
diff --git a/swh/storage/tests/algos/test_revisions_walker.py b/swh/storage/tests/algos/test_revisions_walker.py
--- a/swh/storage/tests/algos/test_revisions_walker.py
+++ b/swh/storage/tests/algos/test_revisions_walker.py
@@ -1,11 +1,8 @@
-# Copyright (C) 2018-2019 The Software Heritage developers
+# Copyright (C) 2018-2021 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
-import unittest
-from unittest.mock import patch
-
from swh.model.hashutil import hash_to_bytes, hash_to_hex
from swh.storage.algos.revisions_walker import get_revisions_walker
@@ -380,131 +377,134 @@
_rev_missing = "836d498396fb9b5d45c896885f84d8d60a5651dc"
-class RevisionsWalkerTest(unittest.TestCase):
- def check_revisions_ordering(
- self, rev_walker_type, expected_result, truncated_history
- ):
- with patch("swh.storage.postgresql.storage.Storage") as MockStorage:
- storage = MockStorage()
- if not truncated_history:
- storage.revision_log.return_value = _revisions_list
- else:
- revs_lists_truncated = [
- None if hash_to_hex(rev["id"]) == _rev_missing else rev
- for rev in _revisions_list
- ]
-
- storage.revision_log.return_value = revs_lists_truncated
-
- revs_walker = get_revisions_walker(
- rev_walker_type, storage, hash_to_bytes(_rev_start)
- )
-
- self.assertEqual(
- list(map(hash_to_bytes, expected_result)),
- [rev["id"] for rev in revs_walker],
- )
-
- self.assertEqual(revs_walker.is_history_truncated(), truncated_history)
-
- if truncated_history:
- missing_revs = revs_walker.missing_revisions()
- self.assertEqual(missing_revs, {hash_to_bytes(_rev_missing)})
- else:
- self.assertEqual(revs_walker.missing_revisions(), set())
-
- def test_revisions_walker_committer_date(self):
-
- # revisions should be returned in reverse chronological order
- # of their committer date
- expected_result = [
- "b364f53155044e5308a0f73abb3b5f01995a5b7d",
- "b94886c500c46e32dc3d7ebae8a5409accd592e5",
- "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
- "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
- "b401c50863475db4440c85c10ac0b6423b61554d",
- "9c5051397e5c2e0c258bb639c3dd34406584ca10",
- "836d498396fb9b5d45c896885f84d8d60a5651dc",
- "ee96c2a2d397b79070d2b6fe3051290963748358",
- "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
+def check_revisions_ordering(
+ mocker, rev_walker_type, expected_result, truncated_history
+):
+ storage = mocker.patch("swh.storage.postgresql.storage.Storage")
+
+ if not truncated_history:
+ storage.revision_log.return_value = _revisions_list
+ else:
+ revs_lists_truncated = [
+ None if hash_to_hex(rev["id"]) == _rev_missing else rev
+ for rev in _revisions_list
]
- self.check_revisions_ordering(
- "committer_date", expected_result, truncated_history=False
- )
+ storage.revision_log.return_value = revs_lists_truncated
- def test_revisions_walker_dfs(self):
-
- # revisions should be returned in the same order they are
- # visited when performing a depth-first search in pre order
- # on the revisions DAG
- expected_result = [
- "b364f53155044e5308a0f73abb3b5f01995a5b7d",
- "836d498396fb9b5d45c896885f84d8d60a5651dc",
- "ee96c2a2d397b79070d2b6fe3051290963748358",
- "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
- "b94886c500c46e32dc3d7ebae8a5409accd592e5",
- "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
- "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
- "b401c50863475db4440c85c10ac0b6423b61554d",
- "9c5051397e5c2e0c258bb639c3dd34406584ca10",
- ]
+ revs_walker = get_revisions_walker(
+ rev_walker_type, storage, hash_to_bytes(_rev_start)
+ )
- self.check_revisions_ordering("dfs", expected_result, truncated_history=False)
-
- def test_revisions_walker_dfs_post(self):
-
- # revisions should be returned in the same order they are
- # visited when performing a depth-first search in post order
- # on the revisions DAG
- expected_result = [
- "b364f53155044e5308a0f73abb3b5f01995a5b7d",
- "b94886c500c46e32dc3d7ebae8a5409accd592e5",
- "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
- "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
- "b401c50863475db4440c85c10ac0b6423b61554d",
- "9c5051397e5c2e0c258bb639c3dd34406584ca10",
- "836d498396fb9b5d45c896885f84d8d60a5651dc",
- "ee96c2a2d397b79070d2b6fe3051290963748358",
- "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
- ]
+ assert list(map(hash_to_bytes, expected_result)) == [
+ rev["id"] for rev in revs_walker
+ ]
- self.check_revisions_ordering(
- "dfs_post", expected_result, truncated_history=False
- )
+ assert revs_walker.is_history_truncated() == truncated_history
- def test_revisions_walker_bfs(self):
-
- # revisions should be returned in the same order they are
- # visited when performing a breadth-first search on the
- # revisions DAG
- expected_result = [
- "b364f53155044e5308a0f73abb3b5f01995a5b7d",
- "836d498396fb9b5d45c896885f84d8d60a5651dc",
- "b94886c500c46e32dc3d7ebae8a5409accd592e5",
- "ee96c2a2d397b79070d2b6fe3051290963748358",
- "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
- "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
- "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
- "b401c50863475db4440c85c10ac0b6423b61554d",
- "9c5051397e5c2e0c258bb639c3dd34406584ca10",
- ]
+ if truncated_history:
+ missing_revs = revs_walker.missing_revisions()
+ assert missing_revs == {hash_to_bytes(_rev_missing)}
+ else:
+ assert revs_walker.missing_revisions() == set()
- self.check_revisions_ordering("bfs", expected_result, truncated_history=False)
- def test_revisions_walker_truncated_history(self):
+def test_revisions_walker_committer_date(mocker):
- expected_result = [
- "b364f53155044e5308a0f73abb3b5f01995a5b7d",
- "b94886c500c46e32dc3d7ebae8a5409accd592e5",
- "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
- "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
- "b401c50863475db4440c85c10ac0b6423b61554d",
- "9c5051397e5c2e0c258bb639c3dd34406584ca10",
- ]
+ # revisions should be returned in reverse chronological order
+ # of their committer date
+ expected_result = [
+ "b364f53155044e5308a0f73abb3b5f01995a5b7d",
+ "b94886c500c46e32dc3d7ebae8a5409accd592e5",
+ "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
+ "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
+ "b401c50863475db4440c85c10ac0b6423b61554d",
+ "9c5051397e5c2e0c258bb639c3dd34406584ca10",
+ "836d498396fb9b5d45c896885f84d8d60a5651dc",
+ "ee96c2a2d397b79070d2b6fe3051290963748358",
+ "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
+ ]
+
+ check_revisions_ordering(
+ mocker, "committer_date", expected_result, truncated_history=False
+ )
+
+
+def test_revisions_walker_dfs(mocker):
+
+ # revisions should be returned in the same order they are
+ # visited when performing a depth-first search in pre order
+ # on the revisions DAG
+ expected_result = [
+ "b364f53155044e5308a0f73abb3b5f01995a5b7d",
+ "836d498396fb9b5d45c896885f84d8d60a5651dc",
+ "ee96c2a2d397b79070d2b6fe3051290963748358",
+ "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
+ "b94886c500c46e32dc3d7ebae8a5409accd592e5",
+ "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
+ "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
+ "b401c50863475db4440c85c10ac0b6423b61554d",
+ "9c5051397e5c2e0c258bb639c3dd34406584ca10",
+ ]
+
+ check_revisions_ordering(mocker, "dfs", expected_result, truncated_history=False)
- for revs_walker_type in ("committer_date", "bfs", "dfs", "dfs_post"):
- self.check_revisions_ordering(
- revs_walker_type, expected_result, truncated_history=True
- )
+def test_revisions_walker_dfs_post(mocker):
+
+ # revisions should be returned in the same order they are
+ # visited when performing a depth-first search in post order
+ # on the revisions DAG
+ expected_result = [
+ "b364f53155044e5308a0f73abb3b5f01995a5b7d",
+ "b94886c500c46e32dc3d7ebae8a5409accd592e5",
+ "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
+ "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
+ "b401c50863475db4440c85c10ac0b6423b61554d",
+ "9c5051397e5c2e0c258bb639c3dd34406584ca10",
+ "836d498396fb9b5d45c896885f84d8d60a5651dc",
+ "ee96c2a2d397b79070d2b6fe3051290963748358",
+ "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
+ ]
+
+ check_revisions_ordering(
+ mocker, "dfs_post", expected_result, truncated_history=False
+ )
+
+
+def test_revisions_walker_bfs(mocker):
+
+ # revisions should be returned in the same order they are
+ # visited when performing a breadth-first search on the
+ # revisions DAG
+ expected_result = [
+ "b364f53155044e5308a0f73abb3b5f01995a5b7d",
+ "836d498396fb9b5d45c896885f84d8d60a5651dc",
+ "b94886c500c46e32dc3d7ebae8a5409accd592e5",
+ "ee96c2a2d397b79070d2b6fe3051290963748358",
+ "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
+ "8f89dda8e072383cf50d42532ae8f52ad89f8fdf",
+ "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
+ "b401c50863475db4440c85c10ac0b6423b61554d",
+ "9c5051397e5c2e0c258bb639c3dd34406584ca10",
+ ]
+
+ check_revisions_ordering(mocker, "bfs", expected_result, truncated_history=False)
+
+
+def test_revisions_walker_truncated_history(mocker):
+
+ expected_result = [
+ "b364f53155044e5308a0f73abb3b5f01995a5b7d",
+ "b94886c500c46e32dc3d7ebae8a5409accd592e5",
+ "0cb6b4611d65bee0f57821dac7f611e2f8a02433",
+ "2b0240c6d682bad51532eec15b8a7ed6b75c8d31",
+ "b401c50863475db4440c85c10ac0b6423b61554d",
+ "9c5051397e5c2e0c258bb639c3dd34406584ca10",
+ ]
+
+ for revs_walker_type in ("committer_date", "bfs", "dfs", "dfs_post"):
+
+ check_revisions_ordering(
+ mocker, revs_walker_type, expected_result, truncated_history=True
+ )
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jul 3 2025, 8:53 AM (6 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3219481
Attached To
D6532: test_revisions_walker: Migrate from unittest to pytest
Event Timeline
Log In to Comment