Repository: vacanza/holidays
Pull request #2210 (2025-01-03 20:39:35)

Update Poland holidays: add Christmas Eve holiday since 2025
<!--
  Thanks for contributing to holidays!
-->

## Proposed change

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->

Update Poland holidays: add Christmas Eve holiday since 2025.
Sources: [1](https://polanddaily24.com/christmas-eve-declared-a-public-holiday-in-poland-changes-effective-next-year/lifestyle/48678), [2](https://www.polskieradio.pl/395/7784/Artykul/3464393,christmas-eve-officially-a-day-off-in-poland-from-2025), [law](https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20240001965).

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [x] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [x] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.rst
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2210) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2210&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2210&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2210&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2210&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2210&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2210)


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2210?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`16e6f17`)](https://app.codecov.io/gh/vacanza/holidays/commit/16e6f17135b760f2d8b50143c889eebd0ce1abaa?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`b6a3269`)](https://app.codecov.io/gh/vacanza/holidays/commit/b6a3269cc941bdc88cc7d916c0d17fac694db537?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##               dev     #2210   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          195       195           
  Lines        11762     11764    +2     
  Branches      1699      1700    +1     
=========================================
+ Hits         11762     11764    +2     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2210?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).


Patch:
diff --git a/holidays/countries/poland.py b/holidays/countries/poland.py
index f6179ee8..d22c85c2 100644
--- a/holidays/countries/poland.py
+++ b/holidays/countries/poland.py
@@ -19,7 +19,10 @@ from holidays.holiday_base import HolidayBase
 
 class Poland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
     """
-    https://pl.wikipedia.org/wiki/Dni_wolne_od_pracy_w_Polsce
+    References:
+        - https://en.wikipedia.org/wiki/Public_holidays_in_Poland
+        - https://pl.wikipedia.org/wiki/Dni_wolne_od_pracy_w_Polsce
+        - https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20240001965
     """
 
     country = "PL"
@@ -104,8 +107,13 @@ class Poland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolida
                 tr("Niepokalane Poczęcie Najświętszej Marii Panny")
             )
 
+        if self._year >= 2025:
+            # Christmas Eve.
+            self._add_christmas_eve(tr("Wigilia Bożego Narodzenia"))
+
         # Christmas Day.
         self._add_christmas_day(tr("Boże Narodzenie (pierwszy dzień)"))
+
         # Second Day of Christmas.
         self._add_christmas_day_two(tr("Boże Narodzenie (drugi dzień)"))
 
diff --git a/holidays/locale/en_US/LC_MESSAGES/PL.po b/holidays/locale/en_US/LC_MESSAGES/PL.po
index 777354cb..e6b6526c 100644
--- a/holidays/locale/en_US/LC_MESSAGES/PL.po
+++ b/holidays/locale/en_US/LC_MESSAGES/PL.po
@@ -14,19 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.20\n"
+"Project-Id-Version: Holidays 0.64\n"
 "POT-Creation-Date: 2023-02-15 08:13-0800\n"
-"PO-Revision-Date: 2024-01-03 21:22+0200\n"
+"PO-Revision-Date: 2025-01-03 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\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"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 3.4\n"
-"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 3.5\n"
 
 #. National Independence Day - 100th anniversary.
 msgid "Narodowe Święto Niepodległości - 100-lecie"
@@ -104,6 +102,10 @@ msgstr "National Independence Day"
 msgid "Niepokalane Poczęcie Najświętszej Marii Panny"
 msgstr "Immaculate Conception of the Blessed Virgin Mary"
 
+#. Christmas Eve.
+msgid "Wigilia Bożego Narodzenia"
+msgstr "Christmas Eve"
+
 #. Christmas Day.
 msgid "Boże Narodzenie (pierwszy dzień)"
 msgstr "Christmas Day"
diff --git a/holidays/locale/pl/LC_MESSAGES/PL.po b/holidays/locale/pl/LC_MESSAGES/PL.po
index 7e5ed727..943fea01 100644
--- a/holidays/locale/pl/LC_MESSAGES/PL.po
+++ b/holidays/locale/pl/LC_MESSAGES/PL.po
@@ -14,17 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.20\n"
+"Project-Id-Version: Holidays 0.64\n"
 "POT-Creation-Date: 2023-02-15 08:13-0800\n"
-"PO-Revision-Date: 2023-02-16 09:00-0800\n"
-"Last-Translator: Arkadii Yakovets <ark@cho.red>\n"
+"PO-Revision-Date: 2025-01-03 19:31+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 4.15.0\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #. National Independence Day - 100th anniversary.
 msgid "Narodowe Święto Niepodległości - 100-lecie"
@@ -102,6 +102,10 @@ msgstr ""
 msgid "Niepokalane Poczęcie Najświętszej Marii Panny"
 msgstr ""
 
+#. Christmas Eve.
+msgid "Wigilia Bożego Narodzenia"
+msgstr ""
+
 #. Christmas Day.
 msgid "Boże Narodzenie (pierwszy dzień)"
 msgstr ""
diff --git a/holidays/locale/uk/LC_MESSAGES/PL.po b/holidays/locale/uk/LC_MESSAGES/PL.po
index b39a336d..38592bb6 100644
--- a/holidays/locale/uk/LC_MESSAGES/PL.po
+++ b/holidays/locale/uk/LC_MESSAGES/PL.po
@@ -14,19 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.20\n"
+"Project-Id-Version: Holidays 0.64\n"
 "POT-Creation-Date: 2023-02-14 20:19+0200\n"
-"PO-Revision-Date: 2024-01-02 19:09+0200\n"
+"PO-Revision-Date: 2025-01-03 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\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"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 3.4\n"
-"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 3.5\n"
 
 #. National Independence Day - 100th anniversary.
 msgid "Narodowe Święto Niepodległości - 100-lecie"
@@ -104,6 +102,10 @@ msgstr "День Незалежності"
 msgid "Niepokalane Poczęcie Najświętszej Marii Panny"
 msgstr "Непорочне зачаття Діви Марії"
 
+#. Christmas Eve.
+msgid "Wigilia Bożego Narodzenia"
+msgstr "Святий вечір"
+
 #. Christmas Day.
 msgid "Boże Narodzenie (pierwszy dzień)"
 msgstr "Різдво Христове"
diff --git a/snapshots/countries/PL_COMMON.json b/snapshots/countries/PL_COMMON.json
index 1aaf3d29..1d82591f 100644
--- a/snapshots/countries/PL_COMMON.json
+++ b/snapshots/countries/PL_COMMON.json
@@ -876,6 +876,7 @@
     "2025-08-15": "Assumption Day",
     "2025-11-01": "All Saints' Day",
     "2025-11-11": "National Independence Day",
+    "2025-12-24": "Christmas Eve",
     "2025-12-25": "Christmas Day",
     "2025-12-26": "Second Day of Christmas",
     "2026-01-01": "New Year's Day",
@@ -889,6 +890,7 @@
     "2026-08-15": "Assumption Day",
     "2026-11-01": "All Saints' Day",
     "2026-11-11": "National Independence Day",
+    "2026-12-24": "Christmas Eve",
     "2026-12-25": "Christmas Day",
     "2026-12-26": "Second Day of Christmas",
     "2027-01-01": "New Year's Day",
@@ -902,6 +904,7 @@
     "2027-08-15": "Assumption Day",
     "2027-11-01": "All Saints' Day",
     "2027-11-11": "National Independence Day",
+    "2027-12-24": "Christmas Eve",
     "2027-12-25": "Christmas Day",
     "2027-12-26": "Second Day of Christmas",
     "2028-01-01": "New Year's Day",
@@ -915,6 +918,7 @@
     "2028-08-15": "Assumption Day",
     "2028-11-01": "All Saints' Day",
     "2028-11-11": "National Independence Day",
+    "2028-12-24": "Christmas Eve",
     "2028-12-25": "Christmas Day",
     "2028-12-26": "Second Day of Christmas",
     "2029-01-01": "New Year's Day",
@@ -928,6 +932,7 @@
     "2029-08-15": "Assumption Day",
     "2029-11-01": "All Saints' Day",
     "2029-11-11": "National Independence Day",
+    "2029-12-24": "Christmas Eve",
     "2029-12-25": "Christmas Day",
     "2029-12-26": "Second Day of Christmas",
     "2030-01-01": "New Year's Day",
@@ -941,6 +946,7 @@
     "2030-08-15": "Assumption Day",
     "2030-11-01": "All Saints' Day",
     "2030-11-11": "National Independence Day",
+    "2030-12-24": "Christmas Eve",
     "2030-12-25": "Christmas Day",
     "2030-12-26": "Second Day of Christmas",
     "2031-01-01": "New Year's Day",
@@ -954,6 +960,7 @@
     "2031-08-15": "Assumption Day",
     "2031-11-01": "All Saints' Day",
     "2031-11-11": "National Independence Day",
+    "2031-12-24": "Christmas Eve",
     "2031-12-25": "Christmas Day",
     "2031-12-26": "Second Day of Christmas",
     "2032-01-01": "New Year's Day",
@@ -967,6 +974,7 @@
     "2032-08-15": "Assumption Day",
     "2032-11-01": "All Saints' Day",
     "2032-11-11": "National Independence Day",
+    "2032-12-24": "Christmas Eve",
     "2032-12-25": "Christmas Day",
     "2032-12-26": "Second Day of Christmas",
     "2033-01-01": "New Year's Day",
@@ -980,6 +988,7 @@
     "2033-08-15": "Assumption Day",
     "2033-11-01": "All Saints' Day",
     "2033-11-11": "National Independence Day",
+    "2033-12-24": "Christmas Eve",
     "2033-12-25": "Christmas Day",
     "2033-12-26": "Second Day of Christmas",
     "2034-01-01": "New Year's Day",
@@ -993,6 +1002,7 @@
     "2034-08-15": "Assumption Day",
     "2034-11-01": "All Saints' Day",
     "2034-11-11": "National Independence Day",
+    "2034-12-24": "Christmas Eve",
     "2034-12-25": "Christmas Day",
     "2034-12-26": "Second Day of Christmas",
     "2035-01-01": "New Year's Day",
@@ -1006,6 +1016,7 @@
     "2035-08-15": "Assumption Day",
     "2035-11-01": "All Saints' Day",
     "2035-11-11": "National Independence Day",
+    "2035-12-24": "Christmas Eve",
     "2035-12-25": "Christmas Day",
     "2035-12-26": "Second Day of Christmas",
     "2036-01-01": "New Year's Day",
@@ -1019,6 +1030,7 @@
     "2036-08-15": "Assumption Day",
     "2036-11-01": "All Saints' Day",
     "2036-11-11": "National Independence Day",
+    "2036-12-24": "Christmas Eve",
     "2036-12-25": "Christmas Day",
     "2036-12-26": "Second Day of Christmas",
     "2037-01-01": "New Year's Day",
@@ -1032,6 +1044,7 @@
     "2037-08-15": "Assumption Day",
     "2037-11-01": "All Saints' Day",
     "2037-11-11": "National Independence Day",
+    "2037-12-24": "Christmas Eve",
     "2037-12-25": "Christmas Day",
     "2037-12-26": "Second Day of Christmas",
     "2038-01-01": "New Year's Day",
@@ -1045,6 +1058,7 @@
     "2038-08-15": "Assumption Day",
     "2038-11-01": "All Saints' Day",
     "2038-11-11": "National Independence Day",
+    "2038-12-24": "Christmas Eve",
     "2038-12-25": "Christmas Day",
     "2038-12-26": "Second Day of Christmas",
     "2039-01-01": "New Year's Day",
@@ -1058,6 +1072,7 @@
     "2039-08-15": "Assumption Day",
     "2039-11-01": "All Saints' Day",
     "2039-11-11": "National Independence Day",
+    "2039-12-24": "Christmas Eve",
     "2039-12-25": "Christmas Day",
     "2039-12-26": "Second Day of Christmas",
     "2040-01-01": "New Year's Day",
@@ -1071,6 +1086,7 @@
     "2040-08-15": "Assumption Day",
     "2040-11-01": "All Saints' Day",
     "2040-11-11": "National Independence Day",
+    "2040-12-24": "Christmas Eve",
     "2040-12-25": "Christmas Day",
     "2040-12-26": "Second Day of Christmas",
     "2041-01-01": "New Year's Day",
@@ -1084,6 +1100,7 @@
     "2041-08-15": "Assumption Day",
     "2041-11-01": "All Saints' Day",
     "2041-11-11": "National Independence Day",
+    "2041-12-24": "Christmas Eve",
     "2041-12-25": "Christmas Day",
     "2041-12-26": "Second Day of Christmas",
     "2042-01-01": "New Year's Day",
@@ -1097,6 +1114,7 @@
     "2042-08-15": "Assumption Day",
     "2042-11-01": "All Saints' Day",
     "2042-11-11": "National Independence Day",
+    "2042-12-24": "Christmas Eve",
     "2042-12-25": "Christmas Day",
     "2042-12-26": "Second Day of Christmas",
     "2043-01-01": "New Year's Day",
@@ -1110,6 +1128,7 @@
     "2043-08-15": "Assumption Day",
     "2043-11-01": "All Saints' Day",
     "2043-11-11": "National Independence Day",
+    "2043-12-24": "Christmas Eve",
     "2043-12-25": "Christmas Day",
     "2043-12-26": "Second Day of Christmas",
     "2044-01-01": "New Year's Day",
@@ -1123,6 +1142,7 @@
     "2044-08-15": "Assumption Day",
     "2044-11-01": "All Saints' Day",
     "2044-11-11": "National Independence Day",
+    "2044-12-24": "Christmas Eve",
     "2044-12-25": "Christmas Day",
     "2044-12-26": "Second Day of Christmas",
     "2045-01-01": "New Year's Day",
@@ -1136,6 +1156,7 @@
     "2045-08-15": "Assumption Day",
     "2045-11-01": "All Saints' Day",
     "2045-11-11": "National Independence Day",
+    "2045-12-24": "Christmas Eve",
     "2045-12-25": "Christmas Day",
     "2045-12-26": "Second Day of Christmas",
     "2046-01-01": "New Year's Day",
@@ -1149,6 +1170,7 @@
     "2046-08-15": "Assumption Day",
     "2046-11-01": "All Saints' Day",
     "2046-11-11": "National Independence Day",
+    "2046-12-24": "Christmas Eve",
     "2046-12-25": "Christmas Day",
     "2046-12-26": "Second Day of Christmas",
     "2047-01-01": "New Year's Day",
@@ -1162,6 +1184,7 @@
     "2047-08-15": "Assumption Day",
     "2047-11-01": "All Saints' Day",
     "2047-11-11": "National Independence Day",
+    "2047-12-24": "Christmas Eve",
     "2047-12-25": "Christmas Day",
     "2047-12-26": "Second Day of Christmas",
     "2048-01-01": "New Year's Day",
@@ -1175,6 +1198,7 @@
     "2048-08-15": "Assumption Day",
     "2048-11-01": "All Saints' Day",
     "2048-11-11": "National Independence Day",
+    "2048-12-24": "Christmas Eve",
     "2048-12-25": "Christmas Day",
     "2048-12-26": "Second Day of Christmas",
     "2049-01-01": "New Year's Day",
@@ -1188,6 +1212,7 @@
     "2049-08-15": "Assumption Day",
     "2049-11-01": "All Saints' Day",
     "2049-11-11": "National Independence Day",
+    "2049-12-24": "Christmas Eve",
     "2049-12-25": "Christmas Day",
     "2049-12-26": "Second Day of Christmas",
     "2050-01-01": "New Year's Day",
@@ -1201,6 +1226,7 @@
     "2050-08-15": "Assumption Day",
     "2050-11-01": "All Saints' Day",
     "2050-11-11": "National Independence Day",
+    "2050-12-24": "Christmas Eve",
     "2050-12-25": "Christmas Day",
     "2050-12-26": "Second Day of Christmas"
 }


Test patch:
diff --git a/tests/countries/test_poland.py b/tests/countries/test_poland.py
index d2ee72b3..eaf65d9b 100644
--- a/tests/countries/test_poland.py
+++ b/tests/countries/test_poland.py
@@ -27,59 +27,25 @@ class TestPoland(CommonCountryTests, TestCase):
     def test_no_holidays(self):
         self.assertNoHolidays(Poland(years=1924))
 
-    def test_2017(self):
-        # http://www.officeholidays.com/countries/poland/2017.php
-        self.assertHolidayDates(
-            Poland(years=2017),
-            "2017-01-01",
-            "2017-01-06",
-            "2017-04-16",
-            "2017-04-17",
-            "2017-05-01",
-            "2017-05-03",
-            "2017-06-04",
-            "2017-06-15",
-            "2017-08-15",
-            "2017-11-01",
-            "2017-11-11",
-            "2017-12-25",
-            "2017-12-26",
-        )
-
-    def test_2022(self):
-        self.assertHolidayDates(
-            Poland(years=2022),
-            "2022-01-01",
-            "2022-01-06",
-            "2022-04-17",
-            "2022-04-18",
-            "2022-05-01",
-            "2022-05-03",
-            "2022-06-05",
-            "2022-06-16",
-            "2022-08-15",
-            "2022-11-01",
-            "2022-11-11",
-            "2022-12-25",
-            "2022-12-26",
-        )
-
     def test_special_holidays(self):
         self.assertHoliday("2018-11-12")
 
-    def test_nowy_rok(self):
-        self.assertHoliday(f"{year}-01-01" for year in range(1925, 2050))
+    def test_new_years_day(self):
+        self.assertHolidayName("Nowy Rok", (f"{year}-01-01" for year in range(1925, 2050)))
 
-    def test_swieto_trzech_kroli(self):
-        self.assertHoliday(f"{year}-01-06" for year in range(1925, 1960))
-        self.assertHoliday(f"{year}-01-06" for year in range(2011, 2050))
+    def test_epiphany(self):
+        name = "Święto Trzech Króli"
+        self.assertHolidayName(
+            name, (f"{year}-01-06" for year in (*range(1925, 1960), *range(2011, 2050)))
+        )
         self.assertNoHoliday(f"{year}-01-06" for year in range(1961, 2011))
-        self.assertNoHolidayName("Święto Trzech Króli", range(1961, 2011))
+        self.assertNoHolidayName(name, range(1961, 2011))
 
-    def test_oczyszczenie_nmp(self):
-        self.assertHoliday(f"{year}-02-02" for year in range(1925, 1951))
+    def test_candlemas(self):
+        name = "Oczyszczenie Najświętszej Marii Panny"
+        self.assertHolidayName(name, (f"{year}-02-02" for year in range(1925, 1951)))
         self.assertNoHoliday(f"{year}-02-02" for year in range(1951, 2050))
-        self.assertNoHolidayName("Oczyszczenie Najświętszej Marii Panny", range(1951, 2050))
+        self.assertNoHolidayName(name, range(1951, 2050))
 
     def test_easter_related(self):
         self.assertHoliday(
@@ -125,90 +91,164 @@ class TestPoland(CommonCountryTests, TestCase):
             "2023-06-08",
         )
 
-    def test_swieto_panstwowe(self):
-        self.assertHoliday(f"{year}-05-01" for year in range(1950, 2050))
+    def test_national_day(self):
+        name = "Święto Państwowe"
+        self.assertHolidayName(name, (f"{year}-05-01" for year in range(1950, 2050)))
         self.assertNoHoliday(f"{year}-05-01" for year in range(1925, 1950))
-        self.assertNoHolidayName("Święto Państwowe", range(1925, 1950))
+        self.assertNoHolidayName(name, range(1925, 1950))
 
-    def test_swieto_narodowe_trzeciego_maja(self):
-        self.assertHoliday(f"{year}-05-03" for year in range(1925, 1951))
-        self.assertHoliday(f"{year}-05-03" for year in range(1990, 2050))
+    def test_national_day_of_third_of_may(self):
+        name = "Święto Narodowe Trzeciego Maja"
+        self.assertHolidayName(
+            name, (f"{year}-05-03" for year in (*range(1925, 1951), *range(1990, 2050)))
+        )
         self.assertNoHoliday(f"{year}-05-03" for year in range(1951, 1990))
-        self.assertNoHolidayName("Święto Narodowe Trzeciego Maja", range(1951, 1990))
+        self.assertNoHolidayName(name, range(1951, 1990))
 
-    def test_narodowe_swieto_zwyciestwa_i_wolnosci(self):
-        self.assertHoliday(f"{year}-05-09" for year in range(1946, 1951))
+    def test_national_victory_and_freedom_day(self):
+        name = "Narodowe Święto Zwycięstwa i Wolności"
+        self.assertHolidayName(name, (f"{year}-05-09" for year in range(1946, 1951)))
+        # Exclude Ascension day on 1929-05-09
         self.assertNoHoliday(
-            f"{year}-05-09" for year in set(range(1925, 1946)).difference({1929})
-        )  # Exclude Ascension day on 09/05/1929
-        self.assertNoHoliday(f"{year}-05-09" for year in range(1951, 2050))
-        self.assertNoHolidayName(
-            "Narodowe Święto Zwycięstwa i Wolności", range(1925, 1946), range(1951, 2050)
+            f"{year}-05-09"
+            for year in (*range(1925, 1929), *range(1930, 1946), *range(1951, 2050))
         )
+        self.assertNoHolidayName(name, range(1925, 1946), range(1951, 2050))
 
-    def test_wniebowstapienie_panskie(self):
-        self.assertHoliday(
+    def test_ascension_day(self):
+        name = "Wniebowstąpienie Pańskie"
+        self.assertHolidayName(
+            name,
             "1930-05-29",
             "1934-05-10",
             "1939-05-18",
             "1945-05-10",
             "1950-05-18",
         )
-        self.assertNoHolidayName("Wniebowstąpienie Pańskie", range(1951, 2050))
+        self.assertHolidayName(name, range(1925, 1951))
+        self.assertNoHolidayName(name, range(1951, 2050))
 
-    def test_drugi_dzien_zielonych_swiatek(self):
-        self.assertHoliday(
+    def test_whit_monday(self):
+        name = "Drugi dzień Zielonych Świątek"
+        self.assertHolidayName(
+            name,
             "1930-06-09",
             "1934-05-21",
             "1939-05-29",
             "1945-05-21",
             "1950-05-29",
         )
-        self.assertNoHolidayName("Drugi dzień Zielonych Świątek", range(1951, 2050))
+        self.assertHolidayName(name, range(1925, 1951))
+        self.assertNoHolidayName(name, range(1951, 2050))
 
-    def test_swietych_apostolow_piotra_i_pawla(self):
-        self.assertHoliday(f"{year}-06-29" for year in range(1925, 1951))
+    def test_saints_peter_and_paul_day(self):
+        name = "Uroczystość Świętych Apostołów Piotra i Pawła"
+        self.assertHolidayName(name, (f"{year}-06-29" for year in range(1925, 1951)))
         self.assertNoHoliday(f"{year}-06-29" for year in range(1951, 2050))
-        self.assertNoHolidayName(
-            "Uroczystość Świętych Apostołów Piotra i Pawła", range(1951, 2050)
-        )
+        self.assertNoHolidayName(name, range(1951, 2050))
 
-    def test_narodowe_swieto_odrodzenia_polski(self):
-        self.assertHoliday(f"{year}-07-22" for year in range(1945, 1990))
-        self.assertNoHoliday(f"{year}-07-22" for year in range(1925, 1945))
-        self.assertNoHoliday(f"{year}-07-22" for year in range(1990, 2050))
-        self.assertNoHolidayName(
-            "Narodowe Święto Odrodzenia Polski", range(1925, 1945), range(1990, 2050)
-        )
+    def test_national_day_of_rebirth_of_poland(self):
+        name = "Narodowe Święto Odrodzenia Polski"
+        self.assertHolidayName(name, (f"{year}-07-22" for year in range(1945, 1990)))
+        self.assertNoHoliday(f"{year}-07-22" for year in (*range(1925, 1945), *range(1990, 2050)))
+        self.assertNoHolidayName(name, range(1925, 1945), range(1990, 2050))
 
-    def test_wniebowziecie_nmp(self):
-        self.assertHoliday(f"{year}-08-15" for year in range(1925, 1961))
-        self.assertHoliday(f"{year}-08-15" for year in range(1989, 2050))
+    def test_assumption_day(self):
+        name = "Wniebowzięcie Najświętszej Marii Panny"
+        self.assertHolidayName(
+            name, (f"{year}-08-15" for year in (*range(1925, 1961), *range(1989, 2050)))
+        )
         self.assertNoHoliday(f"{year}-08-15" for year in range(1961, 1989))
-        self.assertNoHolidayName("Wniebowzięcie Najświętszej Marii Panny", range(1961, 1989))
+        self.assertNoHolidayName(name, range(1961, 1989))
 
-    def test_wszystkich_swietych(self):
-        self.assertHoliday(f"{year}-11-01" for year in range(1925, 2050))
+    def test_all_saints_day(self):
+        self.assertHolidayName(
+            "Uroczystość Wszystkich Świętych", (f"{year}-11-01" for year in range(1925, 2050))
+        )
 
-    def test_narodowe_swieto_niepodleglosci(self):
-        self.assertHoliday(f"{year}-11-11" for year in range(1937, 1945))
-        self.assertHoliday(f"{year}-11-11" for year in range(1989, 2050))
-        self.assertNoHoliday(f"{year}-11-11" for year in range(1925, 1937))
-        self.assertNoHoliday(f"{year}-11-11" for year in range(1945, 1989))
-        self.assertNoHolidayName(
-            "Narodowe Święto Niepodległości", range(1925, 1937), range(1945, 1989)
+    def test_national_independence_day(self):
+        name = "Narodowe Święto Niepodległości"
+        self.assertHolidayName(
+            name, (f"{year}-11-11" for year in (*range(1937, 1945), *range(1989, 2050)))
         )
+        self.assertNoHoliday(f"{year}-11-11" for year in (*range(1925, 1937), *range(1945, 1989)))
+        self.assertNoHolidayName(name, range(1925, 1937), range(1945, 1989))
 
-    def test_niepokalane_poczecie_nmp(self):
-        self.assertHoliday(f"{year}-12-08" for year in range(1925, 1951))
+    def test_immaculate_conception_day(self):
+        name = "Niepokalane Poczęcie Najświętszej Marii Panny"
+        self.assertHolidayName(name, (f"{year}-12-08" for year in range(1925, 1951)))
         self.assertNoHoliday(f"{year}-12-08" for year in range(1951, 2050))
-        self.assertNoHolidayName(
-            "Niepokalane Poczęcie Najświętszej Marii Panny", range(1951, 2050)
+        self.assertNoHolidayName(name, range(1951, 2050))
+
+    def test_christmas_eve(self):
+        name = "Wigilia Bożego Narodzenia"
+        self.assertHolidayName(name, (f"{year}-12-24" for year in range(2025, 2050)))
+        self.assertNoHoliday(f"{year}-12-24" for year in range(1925, 2025))
+        self.assertNoHolidayName(name, range(1925, 2025))
+
+    def test_christmas(self):
+        self.assertHolidayName(
+            "Boże Narodzenie (pierwszy dzień)", (f"{year}-12-25" for year in range(1925, 2050))
+        )
+        self.assertHolidayName(
+            "Boże Narodzenie (drugi dzień)", (f"{year}-12-26" for year in range(1925, 2050))
         )
 
-    def test_boze_narodzenie(self):
-        self.assertHoliday(f"{year}-12-25" for year in range(1925, 2050))
-        self.assertHoliday(f"{year}-12-26" for year in range(1925, 2050))
+    def test_2017(self):
+        # http://www.officeholidays.com/countries/poland/2017.php
+        self.assertHolidayDates(
+            Poland(years=2017),
+            "2017-01-01",
+            "2017-01-06",
+            "2017-04-16",
+            "2017-04-17",
+            "2017-05-01",
+            "2017-05-03",
+            "2017-06-04",
+            "2017-06-15",
+            "2017-08-15",
+            "2017-11-01",
+            "2017-11-11",
+            "2017-12-25",
+            "2017-12-26",
+        )
+
+    def test_2022(self):
+        self.assertHolidayDates(
+            Poland(years=2022),
+            "2022-01-01",
+            "2022-01-06",
+            "2022-04-17",
+            "2022-04-18",
+            "2022-05-01",
+            "2022-05-03",
+            "2022-06-05",
+            "2022-06-16",
+            "2022-08-15",
+            "2022-11-01",
+            "2022-11-11",
+            "2022-12-25",
+            "2022-12-26",
+        )
+
+    def test_2025(self):
+        self.assertHolidayDates(
+            Poland(years=2025),
+            "2025-01-01",
+            "2025-01-06",
+            "2025-04-20",
+            "2025-04-21",
+            "2025-05-01",
+            "2025-05-03",
+            "2025-06-08",
+            "2025-06-19",
+            "2025-08-15",
+            "2025-11-01",
+            "2025-11-11",
+            "2025-12-24",
+            "2025-12-25",
+            "2025-12-26",
+        )
 
     def test_l10n_default(self):
         self.assertLocalizedHolidays(