Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion holidays/countries/slovakia.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
* <https://en.wikipedia.org/wiki/Public_holidays_in_Slovakia>
* <https://sk.wikipedia.org/wiki/Zoznam_sviatkov_na_Slovensku>
* <https://web.archive.org/web/20250413192257/https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1993/241/>
* <https://web.archive.org/web/20251007065052/https://spectator.sme.sk/business/c/slovakia-ends-november-17-public-holiday-amid-fiscal-pressures>
"""

country = "SK"
Expand Down Expand Up @@ -78,7 +79,7 @@ def _populate_public_holidays(self):
# All Saints' Day.
self._add_all_saints_day(tr("Sviatok Všetkých svätých"))

if self._year >= 2001:
if 2001 <= self._year <= 2024:
# Struggle for Freedom and Democracy Day.
self._add_holiday_nov_17(tr("Deň boja za slobodu a demokraciu"))

Expand All @@ -102,6 +103,10 @@ def _populate_workday_holidays(self):
# Day of the Establishment of the Independent Czech-Slovak State.
self._add_holiday_oct_28(tr("Deň vzniku samostatného česko-slovenského štátu"))

if self._year >= 2025:
# Struggle for Freedom and Democracy Day.
self._add_holiday_nov_17(tr("Deň boja za slobodu a demokraciu"))


class SK(Slovakia):
pass
Expand Down
65 changes: 31 additions & 34 deletions tests/countries/test_slovakia.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
class TestSlovakia(CommonCountryTests, TestCase):
@classmethod
def setUpClass(cls):
years = range(1993, 2050)
super().setUpClass(Slovakia, years=years)
cls.workday_holidays = Slovakia(categories=WORKDAY, years=years)
cls.full_range = range(1993, 2050)
super().setUpClass(Slovakia, years=cls.full_range)
cls.workday_holidays = Slovakia(categories=WORKDAY, years=cls.full_range)

def test_country_aliases(self):
self.assertAliases(Slovakia, SK, SVK)
Expand All @@ -38,80 +38,79 @@ def test_special_holidays(self):

def test_new_years_day(self):
self.assertHolidayName(
"Deň vzniku Slovenskej republiky", (f"{year}-01-01" for year in range(1993, 2050))
"Deň vzniku Slovenskej republiky", (f"{year}-01-01" for year in self.full_range)
)

def test_epiphany(self):
self.assertHolidayName(
"Zjavenie Pána (Traja králi a vianočný sviatok pravoslávnych kresťanov)",
(f"{year}-01-06" for year in range(1993, 2050)),
(f"{year}-01-06" for year in self.full_range),
)

def test_good_friday(self):
name = "Veľký piatok"
self.assertHolidayName(
name,
"2019-04-19",
"2020-04-10",
"2021-04-02",
"2022-04-15",
"2023-04-07",
"2024-03-29",
"2025-04-18",
)
self.assertHolidayName(name, range(1993, 2050))
self.assertHolidayName(name, self.full_range)

def test_easter_monday(self):
name = "Veľkonočný pondelok"
self.assertHolidayName(
name,
"2019-04-22",
"2020-04-13",
"2021-04-05",
"2022-04-18",
"2023-04-10",
"2024-04-01",
"2025-04-21",
)
self.assertHolidayName(name, range(1993, 2050))
self.assertHolidayName(name, self.full_range)

def test_labor_day(self):
self.assertHolidayName("Sviatok práce", (f"{year}-05-01" for year in range(1993, 2050)))
self.assertHolidayName("Sviatok práce", (f"{year}-05-01" for year in self.full_range))

def test_day_of_victory_over_fascizm(self):
name = "Deň víťazstva nad fašizmom"
self.assertHolidayName(name, (f"{year}-05-08" for year in range(1997, 2050)))
self.assertNoHoliday(f"{year}-05-08" for year in range(1993, 1997))
self.assertNoHolidayName(name, range(1993, 1997))

def test_cyril_and_methodius_day(self):
self.assertHolidayName(
"Sviatok svätého Cyrila a svätého Metoda",
(f"{year}-07-05" for year in range(1993, 2050)),
(f"{year}-07-05" for year in self.full_range),
)

def test_slovak_national_uprising(self):
self.assertHolidayName(
"Výročie Slovenského národného povstania",
(f"{year}-08-29" for year in range(1993, 2050)),
(f"{year}-08-29" for year in self.full_range),
)

def test_constitution_day(self):
name = "Deň Ústavy Slovenskej republiky"
# PUBLIC.
self.assertHolidayName(name, (f"{year}-09-01" for year in range(1993, 2024)))
self.assertNoHoliday(f"{year}-09-01" for year in range(2024, 2050))
self.assertNoHolidayName(name, range(2024, 2050))
# WORKDAY.
self.assertHolidayName(
name, self.workday_holidays, (f"{year}-09-01" for year in range(2024, 2050))
)
self.assertNoHolidayName(name, self.workday_holidays, range(1993, 2024))

def test_day_of_our_lady_of_the_seven_sorrows(self):
self.assertHolidayName(
"Sedembolestná Panna Mária", (f"{year}-09-15" for year in range(1993, 2050))
"Sedembolestná Panna Mária", (f"{year}-09-15" for year in self.full_range)
)

def test_establishment_state_day(self):
def test_day_of_the_establishment_of_the_czech_slovak_state(self):
name = "Deň vzniku samostatného česko-slovenského štátu"
self.assertNoHoliday(f"{year}-10-28" for year in range(1993, 2050))
self.assertNoHolidayName(name)
self.assertHolidayName(
name, self.workday_holidays, (f"{year}-10-28" for year in range(2021, 2050))
Expand All @@ -120,29 +119,34 @@ def test_establishment_state_day(self):

def test_all_saints_day(self):
self.assertHolidayName(
"Sviatok Všetkých svätých", (f"{year}-11-01" for year in range(1993, 2050))
"Sviatok Všetkých svätých", (f"{year}-11-01" for year in self.full_range)
)

def test_day_of_freedom_and_democracy(self):
def test_struggle_for_freedom_and_democracy_day(self):
name = "Deň boja za slobodu a demokraciu"
self.assertHolidayName(name, (f"{year}-11-17" for year in range(2001, 2050)))
self.assertNoHoliday(f"{year}-11-17" for year in range(1993, 2001))
self.assertNoHolidayName(name, range(1993, 2001))
# PUBLIC.
self.assertHolidayName(name, (f"{year}-11-17" for year in range(2001, 2025)))
self.assertNoHolidayName(name, range(1993, 2001), range(2025, 2050))
# WORKDAY.
self.assertHolidayName(
name, self.workday_holidays, (f"{year}-11-17" for year in range(2025, 2050))
)
self.assertNoHolidayName(name, self.workday_holidays, range(1993, 2025))

def test_christmas_eve(self):
self.assertHolidayName("Štedrý deň", (f"{year}-12-24" for year in range(1993, 2050)))
self.assertHolidayName("Štedrý deň", (f"{year}-12-24" for year in self.full_range))

def test_christmas_day(self):
self.assertHolidayName(
"Prvý sviatok vianočný", (f"{year}-12-25" for year in range(1993, 2050))
"Prvý sviatok vianočný", (f"{year}-12-25" for year in self.full_range)
)

def test_stephens_day(self):
self.assertHolidayName(
"Druhý sviatok vianočný", (f"{year}-12-26" for year in range(1993, 2050))
"Druhý sviatok vianočný", (f"{year}-12-26" for year in self.full_range)
)

def test_2021(self):
def test_2021_public(self):
self.assertHolidays(
Slovakia(years=2021),
("2021-01-01", "Deň vzniku Slovenskej republiky"),
Expand All @@ -165,19 +169,12 @@ def test_2021(self):
("2021-12-26", "Druhý sviatok vianočný"),
)

def test_workday_2021(self):
def test_2021_workday(self):
self.assertHolidays(
Slovakia(categories=WORKDAY, years=2021),
("2021-10-28", "Deň vzniku samostatného česko-slovenského štátu"),
)

def test_workday_2024(self):
self.assertHolidays(
Slovakia(categories=WORKDAY, years=2024),
("2024-09-01", "Deň Ústavy Slovenskej republiky"),
("2024-10-28", "Deň vzniku samostatného česko-slovenského štátu"),
)

def test_l10n_default(self):
self.assertLocalizedHolidays(
("2022-01-01", "Deň vzniku Slovenskej republiky"),
Expand Down