def test_AlertDate_properties(): sample_datetime = dt_parse('2021-03-02T10:30:00Z') alerts_date = AlertDate(sample_datetime) assert alerts_date.as_lang == 'at 10:30am on Tuesday 2 March 2021' assert alerts_date.as_iso8601 == '2021-03-02T10:30:00+00:00' assert alerts_date.as_utc_datetime == dt_parse('2021-03-02T10:30:00Z') assert alerts_date.as_local_datetime == dt_parse('2021-03-02T10:30:00Z') assert alerts_date.as_url == '2-mar-2021'
def test_AlertDate_properties_work_with_bst(): sample_datetime = dt_parse('2021-04-20T23:30:00Z') alerts_date = AlertDate(sample_datetime) assert alerts_date.as_lang == 'at 12:30am on Wednesday 21 April 2021' assert alerts_date.as_iso8601 == '2021-04-21T00:30:00+01:00' assert alerts_date.as_utc_datetime == dt_parse('2021-04-20T23:30:00Z') assert alerts_date.as_local_datetime == dt_parse('2021-04-21T00:30:00+01:00') assert alerts_date.as_local_date == date(2021, 4, 21) assert alerts_date.as_url == '21-apr-2021'
def test_multiple_test_alerts_on_the_same_day_are_aggregated(mocker): mocker.patch(__name__ + '.Alert.is_public', False) alerts = Alerts([ create_alert_dict( starts_at='2021-01-01T01:01:01Z' ), create_alert_dict( starts_at='2021-01-01T02:02:02Z' ), ]) assert len(alerts) == 2 assert len(alerts.current_and_public) == 0 assert len(alerts.test_alerts_today) == 1 assert len(alerts.current_and_planned_test_alerts) == 1 assert alerts.dates_of_current_and_planned_test_alerts == { AlertDate(dt_parse('2021-01-01T12:01:00Z')) }
def test_AlertDate_is_today(now, sample, expected_is_today): with freeze_time(now): assert AlertDate(dt_parse(sample)).is_today == expected_is_today
def test_AlertDate_at_midday_and_midnight(hour, minute, expected_lang): sample_datetime = dt_parse(f'2021-03-21T{hour}:{minute}:00Z') alerts_date = AlertDate(sample_datetime) assert alerts_date.as_lang == expected_lang
def last_updated_date(self): return AlertDate(self.last_updated)
def cancelled_at_date(self): if self.cancelled_at: return AlertDate(self.cancelled_at)
def finishes_at_date(self): return AlertDate(self.finishes_at)
def starts_at_date(self): return AlertDate(self.starts_at)
def approved_at_date(self): return AlertDate(self.approved_at)