def test_brand_new(self): schedule = QuerySchedule(start_date = datetime.date.today(), time_of_day = datetime.time(hour=0), last_run = None, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() self.assertTrue(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_start_five_days_ago_never_run(self): schedule = QuerySchedule(start_date = datetime.date.today() - datetime.timedelta(days=5), time_of_day = datetime.time(hour=0), last_run = None, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() self.assertTrue(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_not_active(self): """Test that inactive schedules don't want to run""" schedule = QuerySchedule(start_date = datetime.date.today(), time_of_day = datetime.time(hour=0), last_run = None, active = False, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() self.assertFalse(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_eight_day_schedule(self): """Make sure the days_between field is honored""" schedule = QuerySchedule(start_date = datetime.date.today() - datetime.timedelta(days=9), time_of_day = datetime.time(hour=0), last_run = datetime.datetime.now() - datetime.timedelta(days=7), days_between = 8, query_type = QUERY_TYPE_SMS) schedule.save() self.assertFalse(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_query_recipients_not_duplicated(self): """test that if a patient is added to a query schedule both individually and by being a member of a group, they don't get queried twice""" group1 = self.create_group() patient1 = self.create_patient() group1.contacts.add(patient1.contact) schedule = QuerySchedule(start_date = datetime.date.today(), time_of_day = datetime.time(hour=0), last_run = None, active = False, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() schedule.recipients.add(group1) schedule.patients.add(patient1) to_receive = schedule.who_should_receive() self.assertEquals(len(to_receive), 1)
def test_query_schedule_recipients(self): """Test the right patients to receive queries""" group1 = self.create_group() patient1 = self.create_patient() patient2 = self.create_patient() group1.contacts.add(patient1.contact) schedule = QuerySchedule(start_date = datetime.date.today(), time_of_day = datetime.time(hour=0), last_run = None, active = False, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() schedule.recipients.add(group1) schedule.patients.add(patient2) to_receive = schedule.who_should_receive() self.assertTrue(patient1 in to_receive) self.assertTrue(patient2 in to_receive)
def test_query_schedule_recipients(self): """Test the right patients to receive queries""" group1 = self.create_group() patient1 = self.create_patient() patient2 = self.create_patient() group1.contacts.add(patient1.contact) schedule = QuerySchedule(start_date=datetime.date.today(), time_of_day=datetime.time(hour=0), last_run=None, active=False, days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() schedule.recipients.add(group1) schedule.patients.add(patient2) to_receive = schedule.who_should_receive() self.assertTrue(patient1 in to_receive) self.assertTrue(patient2 in to_receive)
def test_query_recipients_not_duplicated(self): """test that if a patient is added to a query schedule both individually and by being a member of a group, they don't get queried twice""" group1 = self.create_group() patient1 = self.create_patient() group1.contacts.add(patient1.contact) schedule = QuerySchedule(start_date=datetime.date.today(), time_of_day=datetime.time(hour=0), last_run=None, active=False, days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() schedule.recipients.add(group1) schedule.patients.add(patient1) to_receive = schedule.who_should_receive() self.assertEquals(len(to_receive), 1)
def test_delete_view(self): """Test using the delete view""" # need a schedule, content not important schedule = QuerySchedule(start_date = datetime.date.today(), time_of_day = datetime.time(hour=0), last_run = None, active = False, days_between = 4, query_type = QUERY_TYPE_SMS) schedule.save() response = self.client.get(reverse('adherence-delete-query-schedule', args=(schedule.pk,)), follow=False) self.assertContains(response, 'Are you sure') response = self.client.post(reverse('adherence-delete-query-schedule', args=(schedule.pk,))) self.assertRedirects(response, reverse('adherence-dashboard')) # our schedule should no longer exist self.assertRaises(QuerySchedule.DoesNotExist, QuerySchedule.objects.get, pk=schedule.pk)
def test_delete_view(self): """Test using the delete view""" # need a schedule, content not important schedule = QuerySchedule(start_date=datetime.date.today(), time_of_day=datetime.time(hour=0), last_run=None, active=False, days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() response = self.client.get(reverse('adherence-delete-query-schedule', args=(schedule.pk, )), follow=False) self.assertContains(response, 'Are you sure') response = self.client.post( reverse('adherence-delete-query-schedule', args=(schedule.pk, ))) self.assertRedirects(response, reverse('adherence-dashboard')) # our schedule should no longer exist self.assertRaises(QuerySchedule.DoesNotExist, QuerySchedule.objects.get, pk=schedule.pk)
def test_brand_new(self): schedule = QuerySchedule(start_date=datetime.date.today(), time_of_day=datetime.time(hour=0), last_run=None, days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() self.assertTrue(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_start_five_days_ago_run_two_days_ago(self): schedule = QuerySchedule( start_date=datetime.date.today() - datetime.timedelta(days=5), time_of_day=datetime.time(hour=0), last_run=datetime.datetime.now() - datetime.timedelta(days=3), days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() self.assertFalse(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_eight_day_schedule(self): """Make sure the days_between field is honored""" schedule = QuerySchedule( start_date=datetime.date.today() - datetime.timedelta(days=9), time_of_day=datetime.time(hour=0), last_run=datetime.datetime.now() - datetime.timedelta(days=7), days_between=8, query_type=QUERY_TYPE_SMS) schedule.save() self.assertFalse(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))
def test_not_active(self): """Test that inactive schedules don't want to run""" schedule = QuerySchedule(start_date=datetime.date.today(), time_of_day=datetime.time(hour=0), last_run=None, active=False, days_between=4, query_type=QUERY_TYPE_SMS) schedule.save() self.assertFalse(schedule.should_run(force=False)) self.assertTrue(schedule.should_run(force=True))