From 68c3edb03c9e2179d739875d78c1315ed580e34d Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Sun, 9 Apr 2023 00:02:09 +0200 Subject: [PATCH] Manage correctly deleted countries. #36 --- codicefiscale/codicefiscale.py | 2 +- codicefiscale/data/deleted-countries.json | 138 ++++++++++++++++++++++ tests/test_issue_0036.py | 22 ++++ 3 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 codicefiscale/data/deleted-countries.json create mode 100644 tests/test_issue_0036.py diff --git a/codicefiscale/codicefiscale.py b/codicefiscale/codicefiscale.py index 1c8c804..94999b1 100644 --- a/codicefiscale/codicefiscale.py +++ b/codicefiscale/codicefiscale.py @@ -88,7 +88,7 @@ def _get_indexed_data() -> ( dict[str, dict[str, list[dict[str, bool | datetime | str | list[str]]]]] ): municipalities = _get_data("municipalities.json") - countries = _get_data("countries.json") + countries = _get_data("deleted-countries.json") + _get_data("countries.json") data: dict[str, dict[str, list[dict[str, bool | datetime | str | list[str]]]]] = { "municipalities": {}, "countries": {}, diff --git a/codicefiscale/data/deleted-countries.json b/codicefiscale/data/deleted-countries.json new file mode 100644 index 0000000..631bc4a --- /dev/null +++ b/codicefiscale/data/deleted-countries.json @@ -0,0 +1,138 @@ +[ + { + "active": false, + "code": "Z105", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "1993-01-01T00:00:00", + "name": "Cecoslovacchia", + "name_alt": "", + "name_alt_en": "", + "name_slugs": [ + "cecoslovacchia", + "czechoslovakia" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z111", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "1990-10-03T00:00:00", + "name": "Repubblica Democratica Tedesca", + "name_alt": "", + "name_alt_en": "", + "name_slugs": [ + "repubblica-democratica-tedesca", + "germania-repubblica-democatica", + "deutsche-demokratische-republik", + "ddr", + "germania-est", + "germania-orientale", + "ostdeutschland" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z118", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "2003-02-04T00:00:00", + "name": "Jugoslavia", + "name_alt": "", + "name_alt_en": "", + "name_slugs": [ + "iugoslavia", + "jugoslavia", + "jugoslavija", + "yugoslavia", + "repubblica-socialista-federale-di-jugoslavia" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z135", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "1992-03-31T00:00:00", + "name": "Unione Repubbliche Socialiste Sovietiche", + "name_alt": "Unione Repubbliche Socialiste Sovietiche", + "name_alt_en": "Union of Soviet Socialist Republics", + "name_slugs": [ + "unione-repubbliche-socialiste-sovietiche", + "repubbliche-dell-unione-sovietica", + "repubbliche-dell-unione", + "repubbliche-socialiste-sovietiche", + "soviet-union", + "union-of-soviet-socialist-republics", + "urss", + "u-r-s-s", + "ussr", + "u-s-s-r", + "sssr", + "s-s-s-r", + "sssr", + "s-s-s-r" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z157", + "date_created": "2003-02-04T00:00:00", + "date_deleted": "2006-06-03T00:00:00", + "name": "Serbia e Montenegro", + "name_alt": "Unione Statale di Serbia e Montenegro", + "name_alt_en": "State Union of Serbia and Montenegro", + "name_slugs": [ + "serbia-e-montenegro", + "unione-statale-di-serbia-e-montenegro", + "state-union-of-serbia-and-montenegro" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z201", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "1975-12-31T00:00:00", + "name": "Federazione dell'Arabia Meridionale", + "name_alt": "", + "name_alt_en": "", + "name_slugs": [ + "federazione-dell-arabia-meridionale", + "arabia-meridionale-federazione" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z202", + "date_created": "1900-01-01T00:00:00", + "date_deleted": "1975-12-31T00:00:00", + "name": "Protettorato dell'Arabia Meridionale", + "name_alt": "", + "name_alt_en": "", + "name_slugs": [ + "protettorato-dell-arabia-meridionale", + "arabia-meridionale-protettorato" + ], + "province": "EE" + }, + { + "active": false, + "code": "Z250", + "date_created": "1975-12-31T00:00:00", + "date_deleted": "1990-05-22T00:00:00", + "name": "Yemen del Sud", + "name_alt": "Yemen del Sud", + "name_alt_en": "South Yemen", + "name_slugs": [ + "yemen-del-sud", + "yemen-repubblica-democratica-popolare", + "repubblica-democratica-popolare-dello-yemen", + "south-yemen", + "people-s-democratic-republic-of-yemen" + ], + "province": "EE" + } +] \ No newline at end of file diff --git a/tests/test_issue_0036.py b/tests/test_issue_0036.py new file mode 100644 index 0000000..8cf087a --- /dev/null +++ b/tests/test_issue_0036.py @@ -0,0 +1,22 @@ +import unittest + +from codicefiscale import codicefiscale + + +class Issue0036TestCase(unittest.TestCase): + def test_issue_0036(self): + items = ( + ("CCCFBA85D03Z105P", "Cecoslovacchia"), + ("CCCFBA85D03Z111D", "Repubblica Democratica Tedesca"), + ("CCCFBA85D03Z118W", "Jugoslavia"), + ("CCCFBA85D03Z135S", "Unione Repubbliche Socialiste Sovietiche"), + ("CCCFBA05D03Z157G", "Serbia e Montenegro"), + ("CCCFBA75D03Z201F", "Federazione dell'Arabia Meridionale"), + ("CCCFBA75D03Z202K", "Protettorato dell'Arabia Meridionale"), + ("CCCFBA85D03Z250N", "Yemen del Sud"), + ) + for item in items: + with self.subTest(item): + code, expected_country = item + data = codicefiscale.decode(code) + self.assertEqual(data["birthplace"]["name"], expected_country)