From adb9a6e3d570c86cf902d6293b30fc1f0f27df82 Mon Sep 17 00:00:00 2001 From: BonfaceKilz Date: Fri, 12 Feb 2021 22:05:53 +0300 Subject: Use sorted list of files when calculating md5sums of directory * gn3/file_utils.py (get_dir_hash): Sort list of files before calculating their md5sums. * tests/unit/test_file_utils.py (test_get_dir_hash): Update test-case md5sum. --- gn3/file_utils.py | 2 +- tests/unit/test_file_utils.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gn3/file_utils.py b/gn3/file_utils.py index 79e6854..d6e1c66 100644 --- a/gn3/file_utils.py +++ b/gn3/file_utils.py @@ -13,7 +13,7 @@ def get_dir_hash(directory: str) -> str: if not os.path.exists(directory): raise FileNotFoundError for root, _, files in os.walk(directory): - for names in files: + for names in sorted(files): file_path = os.path.join(root, names) with open(file_path, "rb") as file_: for buf in iter(partial(file_.read, 4096), b''): diff --git a/tests/unit/test_file_utils.py b/tests/unit/test_file_utils.py index a54680d..f5efa02 100644 --- a/tests/unit/test_file_utils.py +++ b/tests/unit/test_file_utils.py @@ -13,7 +13,7 @@ class TestFileUtils(unittest.TestCase): def test_get_dir_hash(self): """Test that a directory is hashed correctly""" test_dir = os.path.join(os.path.dirname(__file__), "test_data") - self.assertEqual("928a0e2e4846b4b3c2881d9c1d6cfce4", + self.assertEqual("fd9d74a9554b7f13bfeffbdda8e61486", get_dir_hash(test_dir)) def test_get_dir_hash_non_existent_dir(self): -- cgit v1.2.3