Browse Source

[DATALAD] Recorded changes

Daniel Busch 4 months ago
parent
commit
d0986c7e34
2 changed files with 18 additions and 5 deletions
  1. 7 2
      src/faostat_data_primap/download.py
  2. 11 3
      tests/unit/test_download.py

+ 7 - 2
src/faostat_data_primap/download.py

@@ -39,7 +39,9 @@ def find_previous_release_path(
     """
     domain_path = current_release_path.parent
     all_releases = [
-        release_name for release_name in os.listdir(current_release_path.parent)
+        release_name
+        for release_name in os.listdir(current_release_path.parent)
+        if (domain_path / release_name).is_dir()
     ]
 
     # make sure all directories follow the naming convention
@@ -48,7 +50,10 @@ def find_previous_release_path(
             datetime.strptime(release, "%Y-%m-%d") for release in all_releases
         ]
     except ValueError as e:
-        msg = f"All release folders must be in YYYY-MM-DD format, got {all_releases=}"
+        msg = (
+            "All release folders must be in YYYY-MM-DD format, "
+            f"got {sorted(all_releases)}"
+        )
         raise ValueError(msg) from e
 
     all_releases_datetime = sorted(all_releases_datetime)

+ 11 - 3
tests/unit/test_download.py

@@ -119,22 +119,30 @@ def test_find_previous_release_path_that_does_not_exists(
 
 
 @pytest.mark.parametrize(
-    "releases,current_release_date",
+    "releases,current_release_date, error_msg",
     [
         pytest.param(
             ["2023-12-13", "2022-03-18", "2024-11-29", "20240-11-09"],
             "2022-03-18",
+            (
+                "All release folders must be in YYYY-MM-DD format, got "
+                "['2022-03-18', '2023-12-13', '2024-11-29', '20240-11-09']"
+            ),
             id="typo",
         ),
         pytest.param(
             ["20231213", "2022-03-18", "2024-11-29", "2024-11-09"],
             "2022-03-18",
+            (
+                "All release folders must be in YYYY-MM-DD format, got "
+                "['2022-03-18', '20231213', '2024-11-09', '2024-11-29']"
+            ),
             id="missing hyphen",
         ),
     ],
 )
 def test_find_previous_release_path_wrong_dir_format(
-    temp_domain_directories, releases, current_release_date
+    temp_domain_directories, releases, current_release_date, error_msg
 ):
     domain_path = temp_domain_directories["domain_paths"][
         0
@@ -150,7 +158,7 @@ def test_find_previous_release_path_wrong_dir_format(
     with pytest.raises(ValueError) as excinfo:
         result = find_previous_release_path(current_release_path)  # noqa: F841
 
-    assert str(excinfo.value) == "All release folders must be in YYYY-MM-DD format"
+    assert str(excinfo.value) == error_msg
 
 
 def test_calculate_checksum(tmp_path):