test_crf_reader.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from unfccc_ghg_data.unfccc_crf_reader.unfccc_crf_reader_core import (
  2. filter_category,
  3. get_info_from_crf_filename,
  4. get_latest_date_for_country,
  5. )
  6. def test_get_latest_date_for_country():
  7. # RUS CRF
  8. expected = "22082023"
  9. date = get_latest_date_for_country("RUS", 2023, submission_type="CRF")
  10. assert date == expected
  11. # AUS CRT
  12. expected = "12042024"
  13. date = get_latest_date_for_country("AUS", 1, submission_type="CRT")
  14. assert date == expected
  15. # RUS CRT
  16. expected = "20241108"
  17. date = get_latest_date_for_country("RUS", 1, submission_type="CRT")
  18. assert date == expected
  19. def test_get_info_from_crf_filename():
  20. # crf
  21. filename = "BLR_2021_1990_30032021_192048.xlsx"
  22. expected = {
  23. "party": "BLR",
  24. "submission_year": 2021,
  25. "data_year": 1990,
  26. "date": "30032021",
  27. "extra": "192048",
  28. }
  29. assert expected == get_info_from_crf_filename(filename)
  30. # crt
  31. filename = "GUY-CRT-2024-V0.3-1992-20240927-191031_started.xlsx"
  32. expected = {
  33. "party": "GUY",
  34. "submission_year": 2024,
  35. "data_year": 1992,
  36. "date": "20240927",
  37. "extra": "191031_started",
  38. "version": "V0.3",
  39. }
  40. assert expected == get_info_from_crf_filename(filename)
  41. def test_filter_category():
  42. # general
  43. map_gen = ["Option C (country-specific):", ["\\IGNORE"], 4]
  44. assert filter_category(map_gen, "MOZ") == map_gen
  45. # country specific
  46. expected = [
  47. "Other (as specified in table 3(I).A)",
  48. ["3.A.1.C"],
  49. 5,
  50. ]
  51. expected_remove = ["\\REMOVE", ["3.A.1.C"], 5]
  52. # exclude multiple
  53. map_excl_multiple = [
  54. "\\C!-AUS-MLT-LUX-POL-SVN-USA\\ Other (as specified in table 3(I).A)",
  55. ["3.A.1.C"],
  56. 5,
  57. ]
  58. assert filter_category(map_excl_multiple, "MOZ") == expected
  59. assert filter_category(map_excl_multiple, "MLT") == expected_remove
  60. # exclude single
  61. map_excl_single = [
  62. "\\C!-AUS\\ Other (as specified in table 3(I).A)",
  63. ["3.A.1.C"],
  64. 5,
  65. ]
  66. expected = [
  67. "Other (as specified in table 3(I).A)",
  68. ["3.A.1.C"],
  69. 5,
  70. ]
  71. expected_remove = ["\\REMOVE", ["3.A.1.C"], 5]
  72. assert filter_category(map_excl_single, "MOZ") == expected
  73. assert filter_category(map_excl_single, "AUS") == expected_remove
  74. # include multiple
  75. map_incl_multiple = [
  76. "\\C-AUS-NLD\\ Other (as specified in table 3(I).A)",
  77. ["3.A.1.C"],
  78. 5,
  79. ]
  80. assert filter_category(map_incl_multiple, "MOZ") == expected_remove
  81. assert filter_category(map_incl_multiple, "AUS") == expected
  82. assert filter_category(map_incl_multiple, "NLD") == expected
  83. # include single
  84. map_incl_single = ["\\C-AUS\\ Other (as specified in table 3(I).A)", ["3.A.1.C"], 5]
  85. assert filter_category(map_incl_single, "MOZ") == expected_remove
  86. assert filter_category(map_incl_single, "AUS") == expected