Repository: dr-prodigy/python-holidays

Issue:
Wrong workday info for country HR
Today (Oct. 8, 2020) my alarmclock automation did not go off, because my workday sensor gave the wrong info (no workday). This day used to be a holiday in Croatia, but is not anymore.

binary_sensor:
  - platform: workday
    country: HR

![image](https://user-images.githubusercontent.com/61622258/95419607-4082d000-093a-11eb-904c-77a2639b1719.png)


Comments:

Patch:
diff --git a/holidays/countries/croatia.py b/holidays/countries/croatia.py
index 519fe18b..0136f1e3 100644
--- a/holidays/countries/croatia.py
+++ b/holidays/countries/croatia.py
@@ -11,18 +11,18 @@
 #  Website: https://github.com/dr-prodigy/python-holidays
 #  License: MIT (see LICENSE file)
 
-from datetime import date
+from datetime import date, timedelta
 
 from dateutil.easter import easter
-from dateutil.relativedelta import relativedelta as rd
 
-from holidays.constants import JAN, MAY, JUN, AUG, OCT, \
-    NOV, DEC
+from holidays.constants import JAN, MAY, JUN, AUG, OCT, NOV, DEC
 from holidays.holiday_base import HolidayBase
 
 
 class Croatia(HolidayBase):
 
+    # Updated with act 022-03 / 19-01 / 219 of 14 November 2019
+    # https://narodne-novine.nn.hr/clanci/sluzbeni/2019_11_110_2212.html
     # https://en.wikipedia.org/wiki/Public_holidays_in_Croatia
 
     def __init__(self, **kwargs):
@@ -32,6 +32,7 @@ class Croatia(HolidayBase):
     def _populate(self, year):
         # New years
         self[date(year, JAN, 1)] = "Nova Godina"
+
         # Epiphany
         self[date(year, JAN, 6)] = "Sveta tri kralja"
         easter_date = easter(year)
@@ -39,23 +40,23 @@ class Croatia(HolidayBase):
         # Easter
         self[easter_date] = "Uskrs"
         # Easter Monday
-        self[easter_date + rd(days=1)] = "Uskršnji ponedjeljak"
+        self[easter_date + timedelta(days=1)] = "Uskrsni ponedjeljak"
 
         # Corpus Christi
-        self[easter_date + rd(days=60)] = "Tijelovo"
+        self[easter_date + timedelta(days=60)] = "Tijelovo"
 
         # International Workers' Day
         self[date(year, MAY, 1)] = "Međunarodni praznik rada"
 
+        # Statehood day (new)
         if year >= 2020:
-            # Statehood day
             self[date(year, MAY, 30)] = "Dan državnosti"
 
         # Anti-fascist struggle day
         self[date(year, JUN, 22)] = "Dan antifašističke borbe"
 
+        # Statehood day (old)
         if year < 2020:
-            # Statehood day
             self[date(year, JUN, 25)] = "Dan državnosti"
 
         # Victory and Homeland Thanksgiving Day
@@ -64,17 +65,16 @@ class Croatia(HolidayBase):
         # Assumption of Mary
         self[date(year, AUG, 15)] = "Velika Gospa"
 
+        # Independence Day (old)
         if year < 2020:
-            # Independence Day
             self[date(year, OCT, 8)] = "Dan neovisnosti"
 
         # All Saints' Day
-        self[date(year, NOV, 1)] = "Dan svih svetih"
+        self[date(year, NOV, 1)] = "Svi sveti"
 
         if year >= 2020:
             # Memorial day
-            self[date(year, NOV, 18)] =\
-                "Dan sjećanja na žrtve Domovinskog rata"
+            self[date(year, NOV, 18)] = "Dan sjećanja"
 
         # Christmas day
         self[date(year, DEC, 25)] = "Božić"
diff --git a/holidays/countries/russia.py b/holidays/countries/russia.py
index 8e935295..41d36c92 100644
--- a/holidays/countries/russia.py
+++ b/holidays/countries/russia.py
@@ -53,8 +53,12 @@ class Russia(HolidayBase):
         self[date(year, MAY, 9)] = "День Победы"
         # Russia's Day
         self[date(year, JUN, 12)] = "День России"
-        # Unity Day
-        self[date(year, NOV, 4)] = "День народного единства"
+        if year >= 2005:
+            # Unity Day
+            self[date(year, NOV, 4)] = "День народного единства"
+        else:
+            # October Revolution Day
+            self[date(year, NOV, 7)] = "День Октябрьской революции"
 
 
 class RU(Russia):
diff --git a/holidays/countries/united_kingdom.py b/holidays/countries/united_kingdom.py
index 4054b559..dfa92fae 100644
--- a/holidays/countries/united_kingdom.py
+++ b/holidays/countries/united_kingdom.py
@@ -166,6 +166,8 @@ class UnitedKingdom(HolidayBase):
 
         # Boxing Day
         name = "Boxing Day"
+        if self.country == "Ireland":
+            name = "St. Stephen's Day"
         self[date(year, DEC, 26)] = name
         if self.observed and date(year, DEC, 26).weekday() == SAT:
             self[date(year, DEC, 28)] = name + " (Observed)"
diff --git a/holidays/countries/united_states.py b/holidays/countries/united_states.py
index 595005e5..428eac78 100644
--- a/holidays/countries/united_states.py
+++ b/holidays/countries/united_states.py
@@ -452,12 +452,12 @@ class UnitedStates(HolidayBase):
         # American Indian Heritage Day
         # Family Day
         # New Mexico Presidents' Day
-        if (self.state in ('DE', 'FL', 'NH', 'NC', 'OK', 'TX', 'WV') and
+        if (self.state in ('CA', 'DE', 'FL', 'NH', 'NC', 'OK', 'TX', 'WV') and
             year >= 1975) \
                 or (self.state == 'IN' and year >= 2010) \
                 or (self.state == 'MD' and year >= 2008) \
                 or self.state in ('NV', 'NM'):
-            if self.state in ('DE', 'NH', 'NC', 'OK', 'WV'):
+            if self.state in ('CA', 'DE', 'NH', 'NC', 'OK', 'WV'):
                 name = "Day After Thanksgiving"
             elif self.state in ('FL', 'TX'):
                 name = "Friday After Thanksgiving"


Test patch:
diff --git a/tests.py b/tests.py
index 6832fdd4..43adb74c 100644
--- a/tests.py
+++ b/tests.py
@@ -1937,6 +1937,7 @@ class TestUS(unittest.TestCase):
         self.assertIn(date(2017, 11, 20), pr_holidays)
 
     def test_thanksgiving_day(self):
+        ca_holidays = holidays.US(state='CA')
         de_holidays = holidays.US(state='DE')
         fl_holidays = holidays.US(state='FL')
         in_holidays = holidays.US(state='IN')
@@ -1955,6 +1956,8 @@ class TestUS(unittest.TestCase):
             self.assertNotIn(dt + relativedelta(days=-1), self.holidays)
             self.assertNotIn(dt + relativedelta(days=+1), self.holidays)
             self.assertIn(dt + relativedelta(days=+1), de_holidays)
+            self.assertEqual(ca_holidays.get(dt + relativedelta(days=+1)),
+                             "Day After Thanksgiving")
             self.assertEqual(de_holidays.get(dt + relativedelta(days=+1)),
                              "Day After Thanksgiving")
             self.assertEqual(nh_holidays.get(dt + relativedelta(days=+1)),
@@ -4949,6 +4952,9 @@ class TestCroatia(unittest.TestCase):
         self.assertIn(date(2018, 11, 1), self.holidays)
         self.assertIn(date(2018, 12, 25), self.holidays)
         self.assertIn(date(2018, 12, 26), self.holidays)
+
+    def test_2020_new(self):
+        self.assertIn(date(2020, 5, 30), self.holidays)
         self.assertIn(date(2020, 11, 18), self.holidays)
 
 
@@ -5282,6 +5288,10 @@ class TestRussia(unittest.TestCase):
 
     def setUp(self):
         self.holidays = holidays.RU()
+        
+    def test_before_2005(self):
+        self.assertIn(date(2004, 11, 7), self.holidays)
+        self.assertNotIn(date(2004, 11, 4), self.holidays)
 
     def test_2018(self):
         # https://en.wikipedia.org/wiki/Public_holidays_in_Russia
@@ -5299,6 +5309,7 @@ class TestRussia(unittest.TestCase):
         self.assertIn(date(2018, 5, 9), self.holidays)
         self.assertIn(date(2018, 6, 12), self.holidays)
         self.assertIn(date(2018, 11, 4), self.holidays)
+        self.assertNotIn(date(2018, 11, 7), self.holidays)
 
 
 class TestLatvia(unittest.TestCase):