diff --git a/erpnext/setup/doctype/holiday_list/test_holiday_list.py b/erpnext/setup/doctype/holiday_list/test_holiday_list.py
index d32cfe8..23b08fd 100644
--- a/erpnext/setup/doctype/holiday_list/test_holiday_list.py
+++ b/erpnext/setup/doctype/holiday_list/test_holiday_list.py
@@ -3,7 +3,7 @@
 
 import unittest
 from contextlib import contextmanager
-from datetime import timedelta
+from datetime import date, timedelta
 
 import frappe
 from frappe.utils import getdate
@@ -23,6 +23,41 @@
 		fetched_holiday_list = frappe.get_value("Holiday List", holiday_list.name)
 		self.assertEqual(holiday_list.name, fetched_holiday_list)
 
+	def test_weekly_off(self):
+		holiday_list = frappe.new_doc("Holiday List")
+		holiday_list.from_date = "2023-01-01"
+		holiday_list.to_date = "2023-02-28"
+		holiday_list.weekly_off = "Sunday"
+		holiday_list.get_weekly_off_dates()
+
+		holidays = [holiday.holiday_date for holiday in holiday_list.holidays]
+
+		self.assertNotIn(date(2022, 12, 25), holidays)
+		self.assertIn(date(2023, 1, 1), holidays)
+		self.assertIn(date(2023, 1, 8), holidays)
+		self.assertIn(date(2023, 1, 15), holidays)
+		self.assertIn(date(2023, 1, 22), holidays)
+		self.assertIn(date(2023, 1, 29), holidays)
+		self.assertIn(date(2023, 2, 5), holidays)
+		self.assertIn(date(2023, 2, 12), holidays)
+		self.assertIn(date(2023, 2, 19), holidays)
+		self.assertIn(date(2023, 2, 26), holidays)
+		self.assertNotIn(date(2023, 3, 5), holidays)
+
+	def test_local_holidays(self):
+		holiday_list = frappe.new_doc("Holiday List")
+		holiday_list.from_date = "2023-04-01"
+		holiday_list.to_date = "2023-04-30"
+		holiday_list.country = "DE"
+		holiday_list.subdivision = "SN"
+		holiday_list.get_local_holidays()
+
+		holidays = [holiday.holiday_date for holiday in holiday_list.holidays]
+		self.assertNotIn(date(2023, 1, 1), holidays)
+		self.assertIn(date(2023, 4, 7), holidays)
+		self.assertIn(date(2023, 4, 10), holidays)
+		self.assertNotIn(date(2023, 5, 1), holidays)
+
 
 def make_holiday_list(
 	name, from_date=getdate() - timedelta(days=10), to_date=getdate(), holiday_dates=None
