import unittest import datetime from main import is_second_sunday import unittest.mock # Unit test class class TestIsSecondSunday(unittest.TestCase): def test_second_sunday(self): # Define test cases as a list of tuples containing (input_date, expected_result) test_cases = [ (datetime.date(2023, 12, 10), True), (datetime.date(2024, 1, 14), True), (datetime.date(2024, 2, 11), True), ] for input_date, expected_result in test_cases: with unittest.mock.patch("datetime.date") as mock_date: mock_date.today.return_value = input_date self.assertEqual(is_second_sunday(), expected_result) def test_not_second_sunday(self): # Define test cases as a list of tuples containing (input_date, expected_result) test_cases = [ (datetime.date(2023, 12, 12), False), (datetime.date(2023, 12, 5), False), (datetime.date(2023, 12, 19), False), ] for input_date, expected_result in test_cases: with unittest.mock.patch('datetime.date') as mock_date: mock_date.today.return_value = input_date self.assertEqual(is_second_sunday(), expected_result) if __name__ == "__main__": unittest.main()