diff --git a/README.md b/README.md index 1c1f02821b..52f2258271 100644 --- a/README.md +++ b/README.md @@ -1938,6 +1938,13 @@ code when available. The following financial markets are available: +Bolsa Mexicana de Valores +XMEX +Bolsa Mexicana de Valores (BMV) holidays +en_US, es, uk + + + Bombay Stock Exchange XBOM Bombay Stock Exchange (BSE) market holidays diff --git a/holidays/financial/__init__.py b/holidays/financial/__init__.py index 2ddaab7c7f..c6190c6f1d 100644 --- a/holidays/financial/__init__.py +++ b/holidays/financial/__init__.py @@ -10,6 +10,7 @@ # Website: https://github.com/vacanza/holidays # License: MIT (see LICENSE file) +from holidays.financial.bolsa_mexicana_de_valores import BolsaMexicanaDeValores, XMEX, BMV from holidays.financial.bombay_stock_exchange import BombayStockExchange, XBOM, BSE from holidays.financial.brasil_bolsa_balcao import BrasilBolsaBalcao, BVMF, B3 from holidays.financial.chicago_mercantile_exchange import ChicagoMercantileExchange, XCME, CME diff --git a/holidays/financial/bolsa_mexicana_de_valores.py b/holidays/financial/bolsa_mexicana_de_valores.py new file mode 100644 index 0000000000..56002323f2 --- /dev/null +++ b/holidays/financial/bolsa_mexicana_de_valores.py @@ -0,0 +1,145 @@ +# holidays +# -------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file) +# dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/vacanza/holidays +# License: MIT (see LICENSE file) + +from gettext import gettext as tr + +from holidays.calendars.gregorian import SEP +from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays +from holidays.observed_holiday_base import ObservedHolidayBase, SAT_TO_NONE, SUN_TO_NONE + + +class BolsaMexicanaDeValores( + ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays +): + """Bolsa Mexicana de Valores (BMV) holidays. + + References: + * + + Historical data: + * [2001](https://web.archive.org/web/20010609142152/http://www.bmv.com.mx/bmv/calendario.html) + * [2002](https://web.archive.org/web/20021210142656/http://bmv.com.mx/BMV/HTML/sec1_diasnolabora.html) + * [2003](https://web.archive.org/web/20031203014342/http://bmv.com.mx/BMV/HTML/sec1_diasnolabora.html) + * [2004](https://web.archive.org/web/20041208225025/http://bmv.com.mx/BMV/HTML/sec1_diasnolabora.html) + * [2005](https://web.archive.org/web/20051210114324/http://bmv.com.mx/BMV/HTML/sec1_diasnolabora.html) + * [2006](https://web.archive.org/web/20060219160628/http://bmv.com.mx/BMV/HTML/sec1_diasnolabora.html) + * [2007](https://web.archive.org/web/20071111015732/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2008](https://web.archive.org/web/20081206060322/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2009](https://web.archive.org/web/20091001053822/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2010](https://web.archive.org/web/20101018003727/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2011](https://web.archive.org/web/20111030174959/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2012](https://web.archive.org/web/20121124175114/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2013](https://web.archive.org/web/20131125224718/http://bmv.com.mx/wb3/wb/BMV/BMV_calendario_de_dias_festivos) + * [2014](https://web.archive.org/web/20151002034151/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2015](https://web.archive.org/web/20151002034151/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2016](https://web.archive.org/web/20161018231815/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2017](https://web.archive.org/web/20171102043000/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2018](https://web.archive.org/web/20181104081233/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2019](https://web.archive.org/web/20191113083233/http://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2020](https://web.archive.org/web/20201027043731/http://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2021](https://web.archive.org/web/20210105213246/http://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2022](https://web.archive.org/web/20220427200741/http://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2023](https://web.archive.org/web/20231205095710/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2024](https://web.archive.org/web/20241227124527/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2025](https://web.archive.org/web/20251008103743/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + * [2026](https://web.archive.org/web/20260217214228/https://www.bmv.com.mx/es/grupo-bmv/calendario-de-dias-festivos) + """ + + market = "XMEX" + default_language = "es" + supported_languages = ("en_US", "es", "uk") + start_year = 2001 + + def __init__(self, *args, **kwargs): + ChristianHolidays.__init__(self) + InternationalHolidays.__init__(self) + StaticHolidays.__init__(self, BolsaMexicanaDeValoresStaticHolidays) + kwargs.setdefault("observed_rule", SAT_TO_NONE + SUN_TO_NONE) + super().__init__(*args, **kwargs) + + def _populate_public_holidays(self): + # New Year's Day. + self._add_new_years_day(tr("Año Nuevo")) + + # Constitution Day. + name = tr("Día de la Constitución") + if self._year >= 2006: + self._add_holiday_1st_mon_of_feb(name) + else: + self._move_holiday(self._add_holiday_feb_5(name)) + + # Benito Juárez's birthday. + name = tr("Natalicio de Benito Juárez") + # no 2006 due to celebration of the 200th anniversary + # of Benito Juárez in 2006 + if self._year >= 2007: + self._add_holiday_3rd_mon_of_mar(name) + else: + self._move_holiday(self._add_holiday_mar_21(name)) + + # Maundy Thursday. + self._add_holy_thursday(tr("Jueves Santo")) + + # Good Friday. + self._add_good_friday(tr("Viernes Santo")) + + # Labor Day. + self._move_holiday(self._add_labor_day(tr("Día del Trabajo"))) + + # Independence Day. + self._move_holiday(self._add_holiday_sep_16(tr("Día de la Independencia"))) + + if (self._year - 1970) % 6 == 0: + # Change of Federal Government. + name = tr("Transmisión del Poder Ejecutivo Federal") + if self._year >= 2024: + self._move_holiday(self._add_holiday_oct_1(name)) + else: + self._move_holiday(self._add_holiday_dec_1(name)) + + if self._year >= 2006: + # Day of the Dead. + self._move_holiday(self._add_holiday_nov_2(tr("Día de Muertos"))) + + # Revolution Day. + name = tr("Día de la Revolución") + if self._year >= 2006: + self._add_holiday_3rd_mon_of_nov(name) + else: + self._move_holiday(self._add_holiday_nov_20(name)) + + # Bank Employee Day. + self._move_holiday(self._add_holiday_dec_12(tr("Día del Empleado Bancario"))) + + # Christmas Day. + self._move_holiday(self._add_christmas_day(tr("Navidad"))) + + +class XMEX(BolsaMexicanaDeValores): + pass + + +class BMV(BolsaMexicanaDeValores): + pass + + +class BolsaMexicanaDeValoresStaticHolidays: + """Bolsa Mexicana de Valores (BMV) special holidays. + + References: + * [Bicentennial of Mexican Independence](https://web.archive.org/web/20260622174254/https://www.eleconomista.com.mx/mercados/BMV-cerrara-16-y-17-de-septiembre-20100913-0030.html) + """ + + special_public_holidays = { + # Bicentennial of Mexican Independence (Bridge day). + 2010: (SEP, 17, tr("Bicentenario de la Independencia de México (Día Puente)")), + } diff --git a/holidays/locale/en_US/LC_MESSAGES/XMEX.po b/holidays/locale/en_US/LC_MESSAGES/XMEX.po new file mode 100644 index 0000000000..f2cad0cda8 --- /dev/null +++ b/holidays/locale/en_US/LC_MESSAGES/XMEX.po @@ -0,0 +1,80 @@ +# holidays +# -------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file) +# dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/vacanza/holidays +# License: MIT (see LICENSE file) +# +# Bolsa Mexicana de Valores (BMV) holidays en_US localization. +# +msgid "" +msgstr "" +"Project-Id-Version: Holidays 0.100\n" +"Report-Msgid-Bugs-To: l10n@vacanza.dev\n" +"POT-Creation-Date: 2026-06-19 11:33+0530\n" +"PO-Revision-Date: 2026-06-23 11:54+0530\n" +"Last-Translator: Paresh Joshi \n" +"Language-Team: Holidays Localization Team\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Lingva 5.0.6\n" +"X-Source-Language: es\n" + +#. New Year's Day. +msgid "Año Nuevo" +msgstr "New Year's Day" + +#. Constitution Day. +msgid "Día de la Constitución" +msgstr "Constitution Day" + +#. Benito Juárez's birthday. +msgid "Natalicio de Benito Juárez" +msgstr "Benito Juárez's birthday" + +#. Maundy Thursday. +msgid "Jueves Santo" +msgstr "Maundy Thursday" + +#. Good Friday. +msgid "Viernes Santo" +msgstr "Good Friday" + +#. Labor Day. +msgid "Día del Trabajo" +msgstr "Labor Day" + +#. Independence Day. +msgid "Día de la Independencia" +msgstr "Independence Day" + +#. Change of Federal Government. +msgid "Transmisión del Poder Ejecutivo Federal" +msgstr "Change of Federal Government" + +#. Day of the Dead. +msgid "Día de Muertos" +msgstr "Day of the Dead" + +#. Revolution Day. +msgid "Día de la Revolución" +msgstr "Revolution Day" + +#. Bank Employee Day. +msgid "Día del Empleado Bancario" +msgstr "Bank Employee Day" + +#. Christmas Day. +msgid "Navidad" +msgstr "Christmas Day" + +#. Bicentennial of Mexican Independence (Bridge day). +msgid "Bicentenario de la Independencia de México (Día Puente)" +msgstr "Bicentennial of Mexican Independence (Bridge day)" diff --git a/holidays/locale/es/LC_MESSAGES/XMEX.po b/holidays/locale/es/LC_MESSAGES/XMEX.po new file mode 100644 index 0000000000..e690bd2aff --- /dev/null +++ b/holidays/locale/es/LC_MESSAGES/XMEX.po @@ -0,0 +1,80 @@ +# holidays +# -------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file) +# dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/vacanza/holidays +# License: MIT (see LICENSE file) +# +# Bolsa Mexicana de Valores (BMV) holidays. +# +msgid "" +msgstr "" +"Project-Id-Version: Holidays 0.100\n" +"Report-Msgid-Bugs-To: l10n@vacanza.dev\n" +"POT-Creation-Date: 2026-06-19 14:20+0000\n" +"PO-Revision-Date: 2026-06-23 11:54+0530\n" +"Last-Translator: Paresh Joshi \n" +"Language-Team: Holidays Localization Team\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Lingva 5.0.6\n" +"X-Source-Language: es\n" + +#. New Year's Day. +msgid "Año Nuevo" +msgstr "" + +#. Constitution Day. +msgid "Día de la Constitución" +msgstr "" + +#. Benito Juárez's birthday. +msgid "Natalicio de Benito Juárez" +msgstr "" + +#. Maundy Thursday. +msgid "Jueves Santo" +msgstr "" + +#. Good Friday. +msgid "Viernes Santo" +msgstr "" + +#. Labor Day. +msgid "Día del Trabajo" +msgstr "" + +#. Independence Day. +msgid "Día de la Independencia" +msgstr "" + +#. Change of Federal Government. +msgid "Transmisión del Poder Ejecutivo Federal" +msgstr "" + +#. Day of the Dead. +msgid "Día de Muertos" +msgstr "" + +#. Revolution Day. +msgid "Día de la Revolución" +msgstr "" + +#. Bank Employee Day. +msgid "Día del Empleado Bancario" +msgstr "" + +#. Christmas Day. +msgid "Navidad" +msgstr "" + +#. Bicentennial of Mexican Independence (Bridge day). +msgid "Bicentenario de la Independencia de México (Día Puente)" +msgstr "" diff --git a/holidays/locale/uk/LC_MESSAGES/XMEX.po b/holidays/locale/uk/LC_MESSAGES/XMEX.po new file mode 100644 index 0000000000..3873c05b83 --- /dev/null +++ b/holidays/locale/uk/LC_MESSAGES/XMEX.po @@ -0,0 +1,80 @@ +# holidays +# -------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file) +# dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/vacanza/holidays +# License: MIT (see LICENSE file) +# +# Bolsa Mexicana de Valores (BMV) holidays uk localization. +# +msgid "" +msgstr "" +"Project-Id-Version: Holidays 0.100\n" +"Report-Msgid-Bugs-To: l10n@vacanza.dev\n" +"POT-Creation-Date: 2026-06-21 13:51+0000\n" +"PO-Revision-Date: 2026-06-23 11:54+0530\n" +"Last-Translator: Paresh Joshi \n" +"Language-Team: Holidays Localization Team\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Lingva 5.0.6\n" +"X-Source-Language: es\n" + +#. New Year's Day. +msgid "Año Nuevo" +msgstr "Новий рік" + +#. Constitution Day. +msgid "Día de la Constitución" +msgstr "День Конституції" + +#. Benito Juárez's birthday. +msgid "Natalicio de Benito Juárez" +msgstr "Річниця Беніто Хуареса" + +#. Maundy Thursday. +msgid "Jueves Santo" +msgstr "Великий четвер" + +#. Good Friday. +msgid "Viernes Santo" +msgstr "Страсна пʼятниця" + +#. Labor Day. +msgid "Día del Trabajo" +msgstr "День праці" + +#. Independence Day. +msgid "Día de la Independencia" +msgstr "День незалежності" + +#. Change of Federal Government. +msgid "Transmisión del Poder Ejecutivo Federal" +msgstr "Передача федеральної виконавчої влади" + +#. Day of the Dead. +msgid "Día de Muertos" +msgstr "День мертвих" + +#. Revolution Day. +msgid "Día de la Revolución" +msgstr "День революції" + +#. Bank Employee Day. +msgid "Día del Empleado Bancario" +msgstr "День банківського працівника" + +#. Christmas Day. +msgid "Navidad" +msgstr "Різдво Христове" + +#. Bicentennial of Mexican Independence (Bridge day). +msgid "Bicentenario de la Independencia de México (Día Puente)" +msgstr "200-річчя незалежності Мексики (додатковий вихідний)" diff --git a/holidays/registry.py b/holidays/registry.py index 9359fa25c1..77ead928a3 100644 --- a/holidays/registry.py +++ b/holidays/registry.py @@ -286,6 +286,7 @@ } FINANCIAL: RegistryDict = { + "bolsa_mexicana_de_valores": ("BolsaMexicanaDeValores", "XMEX", "BMV"), "bombay_stock_exchange": ("BombayStockExchange", "XBOM", "BSE"), "brasil_bolsa_balcao": ("BrasilBolsaBalcao", "BVMF", "B3"), "chicago_mercantile_exchange": ("ChicagoMercantileExchange", "XCME", "CME"), diff --git a/tests/financial/test_bolsa_mexicana_de_valores.py b/tests/financial/test_bolsa_mexicana_de_valores.py new file mode 100644 index 0000000000..e8823971ae --- /dev/null +++ b/tests/financial/test_bolsa_mexicana_de_valores.py @@ -0,0 +1,263 @@ +# holidays +# -------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file) +# dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/vacanza/holidays +# License: MIT (see LICENSE file) + +from unittest import TestCase + +from holidays.financial.bolsa_mexicana_de_valores import BolsaMexicanaDeValores +from tests.common import CommonFinancialTests + + +class TestBolsaMexicanaDeValores(CommonFinancialTests, TestCase): + @classmethod + def setUpClass(cls): + super().setUpClass(BolsaMexicanaDeValores) + + def test_special_holidays(self): + self.assertHoliday("2010-09-17") + + def test_new_years_day(self): + self.assertHolidayName("Año Nuevo", (f"{year}-01-01" for year in self.full_range)) + + def test_constitution_day(self): + name = "Día de la Constitución" + self.assertNonObservedHolidayName( + name, (f"{year}-02-05" for year in range(self.start_year, 2006)) + ) + self.assertHolidayName( + name, + "2020-02-03", + "2021-02-01", + "2022-02-07", + "2023-02-06", + "2024-02-05", + "2025-02-03", + ) + self.assertHolidayName(name, range(2006, self.end_year)) + + def test_benito_juarez_birthday(self): + name = "Natalicio de Benito Juárez" + self.assertNonObservedHolidayName( + name, (f"{year}-03-21" for year in range(self.start_year, 2007)) + ) + self.assertHolidayName( + name, + "2020-03-16", + "2021-03-15", + "2022-03-21", + "2023-03-20", + "2024-03-18", + "2025-03-17", + ) + self.assertHolidayName(name, range(2007, self.end_year)) + + def test_holy_thursday(self): + name = "Jueves Santo" + self.assertHolidayName( + name, + "2020-04-09", + "2021-04-01", + "2022-04-14", + "2023-04-06", + "2024-03-28", + "2025-04-17", + ) + self.assertHolidayName(name, self.full_range) + + def test_good_friday(self): + name = "Viernes Santo" + self.assertHolidayName( + name, + "2020-04-10", + "2021-04-02", + "2022-04-15", + "2023-04-07", + "2024-03-29", + "2025-04-18", + ) + self.assertHolidayName(name, self.full_range) + + def test_labor_day(self): + name = "Día del Trabajo" + self.assertNonObservedHolidayName(name, (f"{year}-05-01" for year in self.full_range)) + self.assertHolidayName( + name, + "2020-05-01", + "2023-05-01", + "2024-05-01", + "2025-05-01", + ) + self.assertNoHoliday( + "2021-05-01", + "2022-05-01", + ) + + def test_independence_day(self): + name = "Día de la Independencia" + self.assertNonObservedHolidayName(name, (f"{year}-09-16" for year in self.full_range)) + self.assertHolidayName( + name, + "2020-09-16", + "2021-09-16", + "2022-09-16", + "2024-09-16", + "2025-09-16", + ) + self.assertNoHoliday( + "2023-09-16", + ) + + def test_change_of_federal_government(self): + name = "Transmisión del Poder Ejecutivo Federal" + self.assertHolidayName( + name, + "2006-12-01", + "2024-10-01", + "2030-10-01", + ) + self.assertNonObservedHolidayName( + name, + "2012-12-01", + "2018-12-01", + ) + self.assertNoHolidayName( + name, + (f"{year}-12-01" for year in range(self.start_year, 2024) if (year - 1970) % 6 > 0), + (f"{year}-12-01" for year in range(2024, self.end_year)), + (f"{year}-10-01" for year in range(2024, self.end_year) if (year - 1970) % 6 > 0), + (f"{year}-10-01" for year in range(self.start_year, 2024)), + ) + + def test_day_of_the_dead(self): + name = "Día de Muertos" + self.assertNonObservedHolidayName( + name, (f"{year}-11-02" for year in range(2006, self.end_year)) + ) + self.assertNoHolidayName(name, range(self.start_year, 2006)) + self.assertHolidayName( + name, + "2020-11-02", + "2021-11-02", + "2022-11-02", + "2023-11-02", + ) + self.assertNoHoliday( + "2024-11-02", + "2025-11-02", + ) + + def test_revolution_day(self): + name = "Día de la Revolución" + self.assertNonObservedHolidayName( + name, (f"{year}-11-20" for year in range(self.start_year, 2006)) + ) + self.assertHolidayName( + name, + "2020-11-16", + "2021-11-15", + "2022-11-21", + "2023-11-20", + "2024-11-18", + "2025-11-17", + ) + self.assertHolidayName(name, range(2006, self.end_year)) + + def test_bank_employee_day(self): + name = "Día del Empleado Bancario" + self.assertNonObservedHolidayName(name, (f"{year}-12-12" for year in self.full_range)) + self.assertHolidayName( + name, + "2022-12-12", + "2023-12-12", + "2024-12-12", + "2025-12-12", + ) + self.assertNoHoliday( + "2020-12-12", + "2021-12-12", + ) + + def test_christmas_day(self): + name = "Navidad" + self.assertNonObservedHolidayName(name, (f"{year}-12-25" for year in self.full_range)) + self.assertHolidayName( + name, + "2020-12-25", + "2023-12-25", + "2024-12-25", + "2025-12-25", + ) + self.assertNoHoliday( + "2021-12-25", + "2022-12-25", + ) + + def test_2025(self): + self.assertHolidaysInYear( + 2025, + ("2025-01-01", "Año Nuevo"), + ("2025-02-03", "Día de la Constitución"), + ("2025-03-17", "Natalicio de Benito Juárez"), + ("2025-04-17", "Jueves Santo"), + ("2025-04-18", "Viernes Santo"), + ("2025-05-01", "Día del Trabajo"), + ("2025-09-16", "Día de la Independencia"), + ("2025-11-17", "Día de la Revolución"), + ("2025-12-12", "Día del Empleado Bancario"), + ("2025-12-25", "Navidad"), + ) + + def test_l10n_default(self): + self.assertLocalizedHolidays( + ("2024-01-01", "Año Nuevo"), + ("2024-02-05", "Día de la Constitución"), + ("2024-03-18", "Natalicio de Benito Juárez"), + ("2024-03-28", "Jueves Santo"), + ("2024-03-29", "Viernes Santo"), + ("2024-05-01", "Día del Trabajo"), + ("2024-09-16", "Día de la Independencia"), + ("2024-10-01", "Transmisión del Poder Ejecutivo Federal"), + ("2024-11-18", "Día de la Revolución"), + ("2024-12-12", "Día del Empleado Bancario"), + ("2024-12-25", "Navidad"), + ) + + def test_l10n_en_us(self): + self.assertLocalizedHolidays( + "en_US", + ("2024-01-01", "New Year's Day"), + ("2024-02-05", "Constitution Day"), + ("2024-03-18", "Benito Juárez's birthday"), + ("2024-03-28", "Maundy Thursday"), + ("2024-03-29", "Good Friday"), + ("2024-05-01", "Labor Day"), + ("2024-09-16", "Independence Day"), + ("2024-10-01", "Change of Federal Government"), + ("2024-11-18", "Revolution Day"), + ("2024-12-12", "Bank Employee Day"), + ("2024-12-25", "Christmas Day"), + ) + + def test_l10n_uk(self): + self.assertLocalizedHolidays( + "uk", + ("2024-01-01", "Новий рік"), + ("2024-02-05", "День Конституції"), + ("2024-03-18", "Річниця Беніто Хуареса"), + ("2024-03-28", "Великий четвер"), + ("2024-03-29", "Страсна пʼятниця"), + ("2024-05-01", "День праці"), + ("2024-09-16", "День незалежності"), + ("2024-10-01", "Передача федеральної виконавчої влади"), + ("2024-11-18", "День революції"), + ("2024-12-12", "День банківського працівника"), + ("2024-12-25", "Різдво Христове"), + )