Repository: vacanza/holidays
Pull request #2698 (2025-07-04 00:13:55)

Update pre-commit hooks
Update pre-commit hooks to their latest versions.

coderabbitai[bot]: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: skip review by coderabbit.ai -->

> [!IMPORTANT]
> ## Review skipped
> 
> Bot user detected.
> 
> To trigger a single review, invoke the `@coderabbitai review` command.
> 
> You can disable this status message by setting the `reviews.review_status` to `false` in the CodeRabbit configuration file.

<!-- end of auto-generated comment: skip review by coderabbit.ai -->
<!-- tips_start -->

---



<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=vacanza/holidays&utm_content=2698):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Join our [Discord community](https://discord.gg/coderabbit) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

Patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 90ae1172..a78775eb 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -25,7 +25,7 @@ repos:
           - --py39-plus
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.12.1
+    rev: v0.12.2
     hooks:
       - id: ruff-check
       - id: ruff-format
diff --git a/holidays/countries/hungary.py b/holidays/countries/hungary.py
index 18d7b901..34ed0c61 100644
--- a/holidays/countries/hungary.py
+++ b/holidays/countries/hungary.py
@@ -28,6 +28,7 @@ class Hungary(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
 
     country = "HU"
     default_language = "hu"
+    start_year = 1945
     supported_languages = ("en_US", "hu", "uk")
 
     def __init__(self, *args, **kwargs):
@@ -40,7 +41,7 @@ class Hungary(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
         # New Year's Day.
         self._add_new_years_day(tr("Újév"))
 
-        if 1945 <= self._year <= 1950 or self._year >= 1989:
+        if self._year <= 1950 or self._year >= 1989:
             # National Day.
             self._add_holiday_mar_15(tr("Nemzeti ünnep"))
 


Test patch:
diff --git a/tests/countries/test_hungary.py b/tests/countries/test_hungary.py
index 22429d1c..b38fc6f2 100644
--- a/tests/countries/test_hungary.py
+++ b/tests/countries/test_hungary.py
@@ -13,10 +13,10 @@
 from unittest import TestCase
 
 from holidays.countries.hungary import Hungary, HU, HUN
-from tests.common import CommonCountryTests
+from tests.common import CommonCountryTests, WorkingDayTests
 
 
-class TestHungary(CommonCountryTests, TestCase):
+class TestHungary(CommonCountryTests, WorkingDayTests, TestCase):
     @classmethod
     def setUpClass(cls):
         super().setUpClass(Hungary, years=range(1945, 2050))
@@ -24,6 +24,181 @@ class TestHungary(CommonCountryTests, TestCase):
     def test_country_aliases(self):
         self.assertAliases(Hungary, HU, HUN)
 
+    def test_no_holidays(self):
+        self.assertNoHolidays(Hungary(years=1944))
+
+    def test_substituted_holidays(self):
+        self.assertHoliday(
+            "1991-08-19",
+            "1992-08-21",
+            "1992-12-24",
+            "1993-12-24",
+            "1994-03-14",
+            "1997-05-02",
+            "1997-10-24",
+            "1997-12-24",
+            "1998-01-02",
+            "1998-08-21",
+            "1998-12-24",
+            "1999-12-24",
+            "2001-03-16",
+            "2001-04-30",
+            "2001-10-22",
+            "2001-11-02",
+            "2001-12-24",
+            "2001-12-31",
+            "2002-08-19",
+            "2002-12-24",
+            "2003-05-02",
+            "2003-10-24",
+            "2003-12-24",
+            "2004-01-02",
+            "2004-12-24",
+            "2005-03-14",
+            "2005-10-31",
+            "2007-03-16",
+            "2007-04-30",
+            "2007-10-22",
+            "2007-11-02",
+            "2007-12-24",
+            "2007-12-31",
+            "2008-05-02",
+            "2008-10-24",
+            "2008-12-24",
+            "2009-01-02",
+            "2009-08-21",
+            "2009-12-24",
+            "2010-12-24",
+            "2011-03-14",
+            "2011-10-31",
+            "2012-03-16",
+            "2012-04-30",
+            "2012-10-22",
+            "2012-11-02",
+            "2012-12-24",
+            "2012-12-31",
+            "2013-08-19",
+            "2013-12-24",
+            "2013-12-27",
+            "2014-05-02",
+            "2014-10-24",
+            "2014-12-24",
+            "2015-01-02",
+            "2015-08-21",
+            "2015-12-24",
+            "2016-03-14",
+            "2016-10-31",
+            "2018-03-16",
+            "2018-04-30",
+            "2018-10-22",
+            "2018-11-02",
+            "2018-12-24",
+            "2018-12-31",
+            "2019-08-19",
+            "2019-12-24",
+            "2019-12-27",
+            "2020-08-21",
+            "2020-12-24",
+            "2021-12-24",
+            "2022-03-14",
+            "2022-10-31",
+            "2024-08-19",
+            "2024-12-24",
+            "2024-12-27",
+            "2025-05-02",
+            "2025-10-24",
+            "2025-12-24",
+            "2026-01-02",
+            "2026-08-21",
+            "2026-12-24",
+        )
+
+    def test_workdays(self):
+        self.assertWorkingDay(
+            "1991-08-17",
+            "1992-08-29",
+            "1992-12-19",
+            "1993-12-18",
+            "1994-03-12",
+            "1997-04-26",
+            "1997-10-18",
+            "1997-12-20",
+            "1998-01-10",
+            "1998-08-15",
+            "1998-12-19",
+            "1999-12-18",
+            "2001-03-10",
+            "2001-04-28",
+            "2001-10-20",
+            "2001-10-27",
+            "2001-12-22",
+            "2001-12-29",
+            "2002-08-10",
+            "2002-12-28",
+            "2003-04-26",
+            "2003-10-18",
+            "2003-12-13",
+            "2004-01-10",
+            "2004-12-18",
+            "2005-03-19",
+            "2005-11-05",
+            "2007-03-10",
+            "2007-04-21",
+            "2007-10-20",
+            "2007-10-27",
+            "2007-12-22",
+            "2007-12-29",
+            "2008-04-26",
+            "2008-10-18",
+            "2008-12-20",
+            "2009-03-28",
+            "2009-08-29",
+            "2009-12-19",
+            "2010-12-11",
+            "2011-03-19",
+            "2011-11-05",
+            "2012-03-24",
+            "2012-04-21",
+            "2012-10-27",
+            "2012-11-10",
+            "2012-12-15",
+            "2012-12-01",
+            "2013-08-24",
+            "2013-12-07",
+            "2013-12-21",
+            "2014-05-10",
+            "2014-10-18",
+            "2014-12-13",
+            "2015-01-10",
+            "2015-08-08",
+            "2015-12-12",
+            "2016-03-05",
+            "2016-10-15",
+            "2018-03-10",
+            "2018-04-21",
+            "2018-10-13",
+            "2018-11-10",
+            "2018-12-01",
+            "2018-12-15",
+            "2019-08-10",
+            "2019-12-07",
+            "2019-12-14",
+            "2020-08-29",
+            "2020-12-12",
+            "2021-12-11",
+            "2022-03-26",
+            "2022-10-15",
+            "2024-08-03",
+            "2024-12-07",
+            "2024-12-14",
+            "2025-05-17",
+            "2025-10-18",
+            "2025-12-13",
+            "2026-01-10",
+            "2026-08-08",
+            "2026-12-12",
+        )
+
     def test_new_years_day(self):
         self.assertHolidayName("Újév", (f"{year}-01-01" for year in range(1945, 2050)))
 
@@ -48,6 +223,7 @@ class TestHungary(CommonCountryTests, TestCase):
             "2022-04-15",
             "2023-04-07",
         )
+        self.assertHolidayName(name, range(2017, 2050))
         self.assertNoHolidayName(name, range(1945, 2017))
 
     def test_easter(self):
@@ -182,93 +358,6 @@ class TestHungary(CommonCountryTests, TestCase):
         self.assertNoHoliday(f"{year}-11-07" for year in years_absent)
         self.assertNoHolidayName(name, years_absent)
 
-    def test_substituted(self):
-        dt = (
-            "1991-08-19",
-            "1992-08-21",
-            "1992-12-24",
-            "1993-12-24",
-            "1994-03-14",
-            "1997-05-02",
-            "1997-10-24",
-            "1997-12-24",
-            "1998-01-02",
-            "1998-08-21",
-            "1998-12-24",
-            "1999-12-24",
-            "2001-03-16",
-            "2001-04-30",
-            "2001-10-22",
-            "2001-11-02",
-            "2001-12-24",
-            "2001-12-31",
-            "2002-08-19",
-            "2002-12-24",
-            "2003-05-02",
-            "2003-10-24",
-            "2003-12-24",
-            "2004-01-02",
-            "2004-12-24",
-            "2005-03-14",
-            "2005-10-31",
-            "2007-03-16",
-            "2007-04-30",
-            "2007-10-22",
-            "2007-11-02",
-            "2007-12-24",
-            "2007-12-31",
-            "2008-05-02",
-            "2008-10-24",
-            "2008-12-24",
-            "2009-01-02",
-            "2009-08-21",
-            "2009-12-24",
-            "2010-12-24",
-            "2011-03-14",
-            "2011-10-31",
-            "2012-03-16",
-            "2012-04-30",
-            "2012-10-22",
-            "2012-11-02",
-            "2012-12-24",
-            "2012-12-31",
-            "2013-08-19",
-            "2013-12-24",
-            "2013-12-27",
-            "2014-05-02",
-            "2014-10-24",
-            "2014-12-24",
-            "2015-01-02",
-            "2015-08-21",
-            "2015-12-24",
-            "2016-03-14",
-            "2016-10-31",
-            "2018-03-16",
-            "2018-04-30",
-            "2018-10-22",
-            "2018-11-02",
-            "2018-12-24",
-            "2018-12-31",
-            "2019-08-19",
-            "2019-12-24",
-            "2019-12-27",
-            "2020-08-21",
-            "2020-12-24",
-            "2021-12-24",
-            "2022-03-14",
-            "2022-10-31",
-            "2024-08-19",
-            "2024-12-24",
-            "2024-12-27",
-            "2025-05-02",
-            "2025-10-24",
-            "2025-12-24",
-            "2026-01-02",
-            "2026-08-21",
-            "2026-12-24",
-        )
-        self.assertHoliday(dt)
-
     def test_2021(self):
         self.assertHolidays(
             Hungary(years=2021),
diff --git a/tests/countries/test_kazakhstan.py b/tests/countries/test_kazakhstan.py
index dbcda77f..c0299b50 100644
--- a/tests/countries/test_kazakhstan.py
+++ b/tests/countries/test_kazakhstan.py
@@ -27,6 +27,125 @@ class TestKazakhstan(CommonCountryTests, WorkingDayTests, TestCase):
     def test_no_holidays(self):
         self.assertNoHolidays(Kazakhstan(years=1990))
 
+    def test_substituted_holidays(self):
+        self.assertHoliday(
+            "2000-05-08",
+            "2001-03-09",
+            "2001-03-23",
+            "2001-04-30",
+            "2001-12-31",
+            "2002-05-10",
+            "2003-05-02",
+            "2003-12-15",
+            "2005-03-07",
+            "2005-03-21",
+            "2005-08-29",
+            "2005-10-24",
+            "2006-01-11",
+            "2006-05-08",
+            "2007-03-09",
+            "2007-03-23",
+            "2007-08-31",
+            "2007-10-26",
+            "2007-12-31",
+            "2008-05-02",
+            "2009-12-18",
+            "2010-01-08",
+            "2010-07-05",
+            "2011-03-07",
+            "2011-08-29",
+            "2012-03-09",
+            "2012-04-30",
+            "2012-12-31",
+            "2013-05-10",
+            "2013-10-14",
+            "2014-01-03",
+            "2014-05-02",
+            "2014-05-08",
+            "2016-03-07",
+            "2017-03-20",
+            "2017-07-07",
+            "2018-03-09",
+            "2018-04-30",
+            "2018-05-08",
+            "2018-08-31",
+            "2018-12-31",
+            "2019-05-10",
+            "2020-01-03",
+            "2020-12-18",
+            "2021-07-05",
+            "2022-03-07",
+            "2022-08-29",
+            "2022-10-24",
+            "2023-07-07",
+            "2024-05-08",
+            "2025-01-03",
+        )
+
+    def test_workdays(self):
+        self.assertWorkingDay(
+            "2000-05-06",
+            "2001-03-11",
+            "2001-03-25",
+            "2001-04-28",
+            "2001-12-29",
+            "2002-05-12",
+            "2003-05-04",
+            "2003-12-13",
+            "2005-03-05",
+            "2005-03-19",
+            "2005-08-27",
+            "2005-10-22",
+            "2006-01-14",
+            "2006-05-06",
+            "2007-03-11",
+            "2007-03-25",
+            "2007-09-02",
+            "2007-10-28",
+            "2007-12-29",
+            "2008-05-04",
+            "2009-12-20",
+            "2010-01-10",
+            "2010-07-03",
+            "2011-03-05",
+            "2011-08-27",
+            "2012-03-11",
+            "2012-04-28",
+            "2012-12-29",
+            "2013-05-04",
+            "2013-10-12",
+            "2013-12-28",
+            "2014-05-04",
+            "2014-05-11",
+            "2016-03-05",
+            "2017-03-18",
+            "2017-07-01",
+            "2018-03-03",
+            "2018-04-28",
+            "2018-05-05",
+            "2018-08-25",
+            "2018-12-29",
+            "2019-05-04",
+            "2020-01-05",
+            "2020-12-20",
+            "2021-07-03",
+            "2022-03-05",
+            "2022-08-27",
+            "2022-10-22",
+            "2023-07-01",
+            "2024-05-04",
+            "2025-01-05",
+        )
+
+        for year, dts in {
+            2013: (
+                "2013-05-04",
+                "2013-10-12",
+                "2013-12-28",
+            ),
+        }.items():
+            self.assertWorkingDay(Kazakhstan(years=year), dts)
+
     def test_new_year(self):
         name = "Жаңа жыл"
         self.assertHolidayName(name, (f"{year}-01-01" for year in range(1991, 2050)))
@@ -187,125 +306,6 @@ class TestKazakhstan(CommonCountryTests, WorkingDayTests, TestCase):
         self.assertHoliday(observed_holidays)
         self.assertNoNonObservedHoliday(observed_holidays)
 
-    def test_substituted_holidays(self):
-        self.assertHoliday(
-            "2000-05-08",
-            "2001-03-09",
-            "2001-03-23",
-            "2001-04-30",
-            "2001-12-31",
-            "2002-05-10",
-            "2003-05-02",
-            "2003-12-15",
-            "2005-03-07",
-            "2005-03-21",
-            "2005-08-29",
-            "2005-10-24",
-            "2006-01-11",
-            "2006-05-08",
-            "2007-03-09",
-            "2007-03-23",
-            "2007-08-31",
-            "2007-10-26",
-            "2007-12-31",
-            "2008-05-02",
-            "2009-12-18",
-            "2010-01-08",
-            "2010-07-05",
-            "2011-03-07",
-            "2011-08-29",
-            "2012-03-09",
-            "2012-04-30",
-            "2012-12-31",
-            "2013-05-10",
-            "2013-10-14",
-            "2014-01-03",
-            "2014-05-02",
-            "2014-05-08",
-            "2016-03-07",
-            "2017-03-20",
-            "2017-07-07",
-            "2018-03-09",
-            "2018-04-30",
-            "2018-05-08",
-            "2018-08-31",
-            "2018-12-31",
-            "2019-05-10",
-            "2020-01-03",
-            "2020-12-18",
-            "2021-07-05",
-            "2022-03-07",
-            "2022-08-29",
-            "2022-10-24",
-            "2023-07-07",
-            "2024-05-08",
-            "2025-01-03",
-        )
-
-    def test_workdays(self):
-        self.assertWorkingDay(
-            "2000-05-06",
-            "2001-03-11",
-            "2001-03-25",
-            "2001-04-28",
-            "2001-12-29",
-            "2002-05-12",
-            "2003-05-04",
-            "2003-12-13",
-            "2005-03-05",
-            "2005-03-19",
-            "2005-08-27",
-            "2005-10-22",
-            "2006-01-14",
-            "2006-05-06",
-            "2007-03-11",
-            "2007-03-25",
-            "2007-09-02",
-            "2007-10-28",
-            "2007-12-29",
-            "2008-05-04",
-            "2009-12-20",
-            "2010-01-10",
-            "2010-07-03",
-            "2011-03-05",
-            "2011-08-27",
-            "2012-03-11",
-            "2012-04-28",
-            "2012-12-29",
-            "2013-05-04",
-            "2013-10-12",
-            "2013-12-28",
-            "2014-05-04",
-            "2014-05-11",
-            "2016-03-05",
-            "2017-03-18",
-            "2017-07-01",
-            "2018-03-03",
-            "2018-04-28",
-            "2018-05-05",
-            "2018-08-25",
-            "2018-12-29",
-            "2019-05-04",
-            "2020-01-05",
-            "2020-12-20",
-            "2021-07-03",
-            "2022-03-05",
-            "2022-08-27",
-            "2022-10-22",
-            "2023-07-01",
-            "2024-05-04",
-            "2025-01-05",
-        )
-
-        for year, dts in {
-            2013: (
-                "2013-05-04",
-                "2013-10-12",
-                "2013-12-28",
-            ),
-        }.items():
-            self.assertWorkingDay(Kazakhstan(years=year), dts)
-
     def test2022(self):
         self.assertHolidays(
             Kazakhstan(years=2022),
diff --git a/tests/countries/test_russia.py b/tests/countries/test_russia.py
index 7021a393..cdffc758 100644
--- a/tests/countries/test_russia.py
+++ b/tests/countries/test_russia.py
@@ -13,10 +13,10 @@
 from unittest import TestCase
 
 from holidays.countries.russia import Russia, RU, RUS
-from tests.common import CommonCountryTests
+from tests.common import CommonCountryTests, WorkingDayTests
 
 
-class TestRussia(CommonCountryTests, TestCase):
+class TestRussia(CommonCountryTests, WorkingDayTests, TestCase):
     @classmethod
     def setUpClass(cls):
         super().setUpClass(Russia, years=range(1991, 2025))
@@ -27,9 +27,8 @@ class TestRussia(CommonCountryTests, TestCase):
     def test_no_holidays(self):
         self.assertNoHolidays(Russia(years=1990))
 
-    def test_special_holidays(self):
+    def test_substituted_holidays(self):
         self.assertHoliday(
-            # Substituted Holidays.
             "1991-05-03",
             "1991-05-10",
             "1994-03-07",
@@ -210,6 +209,99 @@ class TestRussia(CommonCountryTests, TestCase):
             "2023-11-06",
         )
 
+    def test_workdays(self):
+        self.assertWorkingDay(
+            "1991-05-05",
+            "1991-05-12",
+            "1994-03-05",
+            "1995-05-06",
+            "1995-11-04",
+            "1995-12-09",
+            "1996-05-05",
+            "1996-05-12",
+            "1996-11-10",
+            "1996-12-14",
+            "1996-12-15",
+            "1997-01-05",
+            "1997-06-15",
+            "1999-01-10",
+            "2000-05-06",
+            "2000-11-04",
+            "2000-12-09",
+            "2001-03-11",
+            "2001-04-28",
+            "2001-06-09",
+            "2001-12-29",
+            "2002-04-27",
+            "2002-05-18",
+            "2002-11-10",
+            "2002-12-15",
+            "2003-01-04",
+            "2003-01-05",
+            "2003-06-21",
+            "2005-03-05",
+            "2005-05-14",
+            "2006-02-26",
+            "2006-05-06",
+            "2007-04-28",
+            "2007-06-09",
+            "2007-12-29",
+            "2008-05-04",
+            "2008-06-07",
+            "2008-11-01",
+            "2009-01-11",
+            "2010-02-27",
+            "2010-11-13",
+            "2011-03-05",
+            "2012-03-11",
+            "2012-04-28",
+            "2012-05-05",
+            "2012-05-12",
+            "2012-06-09",
+            "2012-12-29",
+            "2013-01-05",
+            "2013-01-06",
+            # "2013-02-25",
+            "2014-01-04",
+            "2014-01-05",
+            # "2014-02-24",
+            "2015-01-03",
+            "2015-01-04",
+            "2016-01-02",
+            "2016-01-03",
+            "2016-02-20",
+            "2017-01-01",
+            "2017-01-07",
+            "2018-01-06",
+            "2018-01-07",
+            "2018-04-28",
+            "2018-06-09",
+            "2018-12-29",
+            "2019-01-05",
+            "2019-01-06",
+            "2019-02-23",
+            "2020-01-04",
+            "2020-01-05",
+            "2021-01-02",
+            "2021-01-03",
+            "2021-02-20",
+            "2022-01-01",
+            "2022-01-02",
+            "2022-03-05",
+            "2023-01-01",
+            "2023-01-08",
+            "2024-01-06",
+            "2024-01-07",
+            "2024-04-27",
+            "2024-11-02",
+            "2024-12-28",
+            "2025-01-04",
+            "2025-01-05",
+            "2025-02-23",
+            "2025-03-08",
+            "2025-11-01",
+        )
+
     def test_new_year(self):
         name_1 = "Новый год"
         name_2 = "Новогодние каникулы"
diff --git a/tests/countries/test_vietnam.py b/tests/countries/test_vietnam.py
index e1909fa0..0e1d2a72 100644
--- a/tests/countries/test_vietnam.py
+++ b/tests/countries/test_vietnam.py
@@ -26,6 +26,46 @@ class TestVietnam(CommonCountryTests, WorkingDayTests, TestCase):
     def test_country_aliases(self):
         self.assertAliases(Vietnam, VN, VNM)
 
+    def test_substituted_holidays(self):
+        self.assertHoliday(
+            "2010-02-19",
+            "2012-01-27",
+            "2013-04-29",
+            "2014-05-02",
+            "2014-09-01",
+            "2015-01-02",
+            "2015-02-16",
+            "2015-04-29",
+            "2018-12-31",
+            "2019-04-29",
+            "2024-04-29",
+        )
+
+    def test_workdays(self):
+        self.assertWorkingDay(
+            "2010-02-27",
+            "2012-02-04",
+            "2013-05-04",
+            "2014-04-26",
+            "2014-09-06",
+            "2014-12-27",
+            "2015-02-14",
+            "2015-04-25",
+            "2019-01-05",
+            "2019-05-04",
+            "2024-05-04",
+        )
+
+        for year, dts in {
+            2014: (
+                "2014-04-26",
+                "2014-09-06",
+                "2014-12-27",
+            ),
+            2019: ("2019-01-05",),
+        }.items():
+            self.assertWorkingDay(Vietnam(years=year), dts)
+
     def test_common(self):
         self.assertHolidayName(
             "Tết Dương lịch",
@@ -159,46 +199,6 @@ class TestVietnam(CommonCountryTests, WorkingDayTests, TestCase):
         self.assertHoliday(observed_holidays)
         self.assertNoNonObservedHoliday(observed_holidays)
 
-    def test_substituted_holidays(self):
-        self.assertHoliday(
-            "2010-02-19",
-            "2012-01-27",
-            "2013-04-29",
-            "2014-05-02",
-            "2014-09-01",
-            "2015-01-02",
-            "2015-02-16",
-            "2015-04-29",
-            "2018-12-31",
-            "2019-04-29",
-            "2024-04-29",
-        )
-
-    def test_workdays(self):
-        self.assertWorkingDay(
-            "2010-02-27",
-            "2012-02-04",
-            "2013-05-04",
-            "2014-04-26",
-            "2014-09-06",
-            "2014-12-27",
-            "2015-02-14",
-            "2015-04-25",
-            "2019-01-05",
-            "2019-05-04",
-            "2024-05-04",
-        )
-
-        for year, dts in {
-            2014: (
-                "2014-04-26",
-                "2014-09-06",
-                "2014-12-27",
-            ),
-            2019: ("2019-01-05",),
-        }.items():
-            self.assertWorkingDay(Vietnam(years=year), dts)
-
     def test_l10n_default(self):
         self.assertLocalizedHolidays(
             ("2022-01-01", "Tết Dương lịch"),