def create_light_alarm():
    try:
        light_state = LightState.get_instance()
        light_tasks = get_light_tasks_by_user(Settings.get_instance().user_id)
        if light_tasks is not None:
            enabled_tasks = [task for task in light_tasks if task['enabled']]
            __add_new_alarms(light_state, enabled_tasks)
            __remove_cancelled_alarms(light_state, enabled_tasks)
    except Exception as er:
        logging.error(er)
    def test_get_light_tasks_by_user__should_make_rest_call_using_url(self, mock_requests):
        get_light_tasks_by_user(self.USER_ID)

        mock_requests.get.assert_called_with(f'{self.HUB_BASE_URL}/userId/{self.USER_ID}/tasks', timeout=5)
    def test_get_light_tasks_by_user__should_return_none_when_response_throws_exception(self, mock_requests):
        mock_requests.get.side_effect = TimeoutError()
        actual = get_light_tasks_by_user(self.USER_ID)

        assert actual is None
    def test_get_light_tasks_by_user__should_return_empty_list_when_alarm_is_not_present(self, mock_requests):
        response = []
        mock_requests.get.return_value = self.__create_response(status=200, data=response)
        actual = get_light_tasks_by_user(self.USER_ID)

        assert actual == []
    def test_get_light_tasks_by_user__should_convert_alarm_time_to_time_object(self, mock_requests):
        response = [{'alarm_light_group': '1', 'alarm_time': '00:00:01'}]
        mock_requests.get.return_value = self.__create_response(status=200, data=response)
        actual = get_light_tasks_by_user(self.USER_ID)

        assert actual[0]['alarm_time'] == time(hour=0, minute=0, second=1)
    def test_get_light_tasks_by_user__should_return_response(self, mock_requests):
        response = [{'alarm_light_group': '1', 'alarm_time': None}]
        mock_requests.get.return_value = self.__create_response(status=200, data=response)
        actual = get_light_tasks_by_user(self.USER_ID)

        assert actual == response