def test_calculate_start_date_with_today_option(self):
        now = datetime.utcnow()

        with create_test_case(self.domain, 'contact', 'test-case') as case:

            reminder = CaseReminderHandler(
                domain=self.domain,
                use_today_if_start_date_is_blank=True
            )

            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            reminder.start_date = 'start_date_case_property'
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': ''})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': '   '})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': 'abcdefg'})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': '2016-01-32'})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (now, True, True)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': '2016-01-10'})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (datetime(2016, 1, 10), True, False)
            )

            update_case(self.domain, case.case_id, {'start_date_case_property': '2016-01-12T00:00:00Z'})
            case = CaseAccessors(self.domain).get_case(case.case_id)
            self.assertEqual(
                reminder.get_case_criteria_reminder_start_date_info(case, now),
                (datetime(2016, 1, 12), True, False)
            )