Browse Source

integration test

Daniel Busch 4 months ago
parent
commit
8305505d7d
1 changed files with 32 additions and 0 deletions
  1. 32 0
      tests/integration/test_download_script.py

+ 32 - 0
tests/integration/test_download_script.py

@@ -0,0 +1,32 @@
+import os
+
+from src.faostat_data_primap.download import download_all_domains
+
+
+# test the whole download script run
+def test_download_all_domains(tmp_path):
+    downloaded_data_path = tmp_path / "downloaded_data"
+    download_all_domains(downloaded_data_path=downloaded_data_path)
+
+    expected_downloaded_domains = [
+        "farm_gate_emissions_crops",
+        "farm_gate_livestock",
+        "farm_gate_agriculture_energy",
+        "land_use_forests",
+        "land_use_fires",
+        "land_use_drained_organic_soils",
+        "pre_post_agricultural_production",
+    ]
+
+    domains = []
+    for domain in downloaded_data_path.iterdir():
+        if domain.is_dir():
+            domains.append(domain.name)
+        for release in domain.iterdir():
+            downloaded_data = os.listdir(release)
+            # make sure we have at least one .csv, one .pdf and one .zip file
+            assert [f for f in downloaded_data if f.endswith(".csv")]
+            assert [f for f in downloaded_data if f.endswith(".pdf")]
+            assert [f for f in downloaded_data if f.endswith(".zip")]
+
+    assert sorted(expected_downloaded_domains) == sorted(domains)