def manage_groups(self, infoservice_type, table_head, member_button, remove_button, remove_patient_button, group_name): info = InfoService(name = "testgroup", type = infoservice_type) info.save() patient = Patient(phone_number = "012345") patient.save() subscription = Subscription(infoservice = info, patient = patient, way_of_communication = get_woc("voice")) subscription.save() response = self.client.get(reverse("infoservices_index", kwargs = {'infoservice_type': infoservice_type})) self.assertContains(response, member_button) self.assertContains(response, remove_button) self.assertContains(response, table_head) response = self.client.get(reverse("infoservices_members", kwargs={"id": info.id, })) self.assertContains(response, patient.phone_number) self.assertContains(response, remove_patient_button) self.assertContains(response, group_name)
def test_get_all_queued_events(self): patient = Patient() patient.save() sendable = InfoMessage(text="Test Message", way_of_communication = get_woc("sms")) sendable.recipient = patient sendable.save() self.assertEquals(scheduler.get_all_queued_events().count(), 0) schedule1 = ScheduledEvent(sendable=sendable, send_time=datetime.now(), state = "queued") schedule1.save() self.assertEquals(scheduler.get_all_queued_events().count(), 1) schedule2 = ScheduledEvent(sendable=sendable, send_time=(datetime.now() - timedelta(days=1)), state = "sent") schedule2.save() self.assertTrue(schedule1 in scheduler.get_all_queued_events()) self.assertFalse(schedule2 in scheduler.get_all_queued_events()) self.assertEquals(scheduler.get_all_queued_events().count(), 1) schedule2.state = "queued" schedule2.save() self.assertEquals(scheduler.get_all_queued_events().count(), 2) schedule1.delete() schedule2.delete()
def test_get_all_due_events(self): patient = Patient() patient.save() # The fixtures already contain two due events self.assertEquals(scheduler.get_all_due_events().count(), 2) sendable = InfoMessage(text="Test Message", way_of_communication = get_woc("sms")) sendable.recipient = patient sendable.save() schedule1 = ScheduledEvent(sendable=sendable, send_time=datetime.now()) schedule1.save() schedule2 = ScheduledEvent(sendable=sendable, send_time=(datetime.now() - timedelta(days=1))) schedule2.save() schedule3 = ScheduledEvent(sendable=sendable, send_time=(datetime.now() + timedelta(days=1))) schedule3.save() self.assertEquals(scheduler.get_all_due_events().count(), 4) self.assertTrue(schedule1 in scheduler.get_all_due_events()) self.assertTrue(schedule2 in scheduler.get_all_due_events()) self.assertFalse(schedule3 in scheduler.get_all_due_events()) schedule4 = ScheduledEvent(sendable=sendable, send_time=datetime.now(), state = "failed") schedule4.save() schedule5 = ScheduledEvent(sendable=sendable, send_time=(datetime.now() - timedelta(days=1)), state = "sent") schedule5.save() self.assertEquals(scheduler.get_all_due_events().count(), 4) schedule1.delete() schedule2.delete() schedule3.delete() schedule4.delete() schedule5.delete()
class InfoServiceModelTest(TestCase): def setUp(self): self.infoservice = InfoService(name = "Gruppe", type="information") self.infoservice.save() self.patient = Patient() self.patient.save() def test_no_infoservices_with_same_name(self): first_infoservice = InfoService(name ="Hospitalinfos", type="information") first_infoservice.save() second_infoservice = InfoService(name ="Hospitalinfos", type="information") self.assertRaises(IntegrityError, second_infoservice.save) def test_no_infoservices_with_no_name(self): self.assertRaises(IntegrityError, InfoService(name = None).save) self.assertRaises(IntegrityError, InfoService().save) def test_no_infoservices_with_empty_type(self): an_infoservice = InfoService(name = "Hospitalinfos") self.assertRaises(IntegrityError, an_infoservice.save)
class SubscriptionTest(TestCase): fixtures = ["backend_test"] def setUp(self): self.woc = get_woc("sms") self.infoservice = InfoService(name = "Gruppe", type = "information") self.infoservice.save() self.patient = Patient() self.patient.save() self.subscription = Subscription(patient = self.patient, infoservice = self.infoservice, way_of_communication = self.woc) self.subscription.save() def test_infoservice_member_relation_add(self): self.assertTrue(self.patient in self.infoservice.members.all()) def test_infoservice_member_relation_delete(self): self.subscription.delete() self.assertTrue(self.patient not in self.infoservice.members.all()) def test_subscription_creation(self): subscription = Subscription() self.assertRaises(IntegrityError, subscription.save) infoservice = InfoService(name = "information", type="information") infoservice.save() subscription.patient = self.patient subscription.infoservice = infoservice subscription.way_of_communication = self.woc subscription.save() self.assertEquals(self.infoservice.members.all().count(), 1) self.assertEquals(self.infoservice.members.all()[0], self.patient) self.assertTrue(subscription in Subscription.objects.all())
class WebInfoServiceTest(TestCase): fixtures = ['backend_test'] def setUp(self): self.info = InfoService(name = "testinfoservice", type="information") self.info.save() self.patient = Patient(name="eu",phone_number = "01234") self.patient.save() self.subscription = Subscription(infoservice = self.info, way_of_communication = get_woc("sms"), patient = self.patient) self.subscription.save() def create_register_form(self): response = self.client.get(reverse('groups_register', kwargs={'group_id': self.info.id})) self.failUnlessEqual(response.status_code, 200) self.assertContains(response, 'name="phone_number"') self.assertContains(response, 'name="way_of_communication"') return response def test_infoservices_on_main_page(self): response = self.client.get(reverse('web_index')) infoservices = InfoService.objects.all() for infoservice in infoservices: if infoservice.type == "information": self.assertContains(response, infoservice.name) self.assertContains(response, reverse('groups_register', kwargs={'group_id': infoservice.id})) else: self.assertNotContains(response, infoservice.name) @disable_authentication def test_register(self): redirection_path = reverse('groups_register_save', \ kwargs = {'group_id': self.info.id}) self.create_register_form() response = self.client.post(reverse('groups_register', kwargs={'group_id': self.info.id}), {'way_of_communication': 1, 'phone_number':'01234 / 56789012'}) self.assertTrue(self.client.session.has_key('way_of_communication')) self.assertTrue(self.client.session.has_key('authenticate_phonenumber')) self.assertEquals(response.status_code, 302) self.assertRedirects(response, redirection_path) return response @disable_authentication def test_register_submit_validations(self): response = self.client.post(reverse('groups_register', kwargs={'group_id': self.info.id}), {'way_of_communication': 1, 'phone_number':'01234 / 56789012'}) self.assertEquals(response.status_code, 302) response = self.client.post(reverse('groups_register', kwargs={'group_id': self.info.id}), {'way_of_communication': 1, 'phone_number':'0123afffg789012'}) self.assertContains(response, 'Please enter numbers only') response = self.client.post(reverse('groups_register', kwargs={'group_id': self.info.id}), {'way_of_communication': 1, 'phone_number':'234 / 56789012'}) self.assertContains(response, 'Please enter a cell phone number.') def test_register_save(self): subscription_count = Subscription.objects.all().count() self.client.post(reverse('groups_register', kwargs={'group_id': self.info.id}), {"way_of_communication": 1, "phone_number": "0123456"}) response = self.client.get(reverse('groups_register_save', kwargs={'group_id': self.info.id})) self.assertEquals(Subscription.objects.all().count(), subscription_count + 1) new_subscription = last(Subscription) self.assertEquals(new_subscription.patient.phone_number, "0123456") self.assertEquals(new_subscription.infoservice, self.info) self.assertEquals(new_subscription.way_of_communication, get_woc("sms")) def test_remove_subscription(self): subscription_count = Subscription.objects.all().count() self.subscription.delete() self.assertEquals(Subscription.objects.all().count(), subscription_count - 1) self.assertTrue(Subscription.objects.filter(pk = self.info.id).count() == 0)
def test_check_spool_files(self): def get_mock_status(filename): """ This is a mock method to represent check_spoolfile_status It is told which status to return by using the (in this case useless) filename parameter """ return filename original_get_spoolfile_status = scheduler.get_spoolfile_status scheduler.get_spoolfile_status = get_mock_status patient = Patient() patient.save() sendable = InfoMessage(text="Test Message", way_of_communication = get_woc("sms")) sendable.recipient = patient sendable.save() event1 = ScheduledEvent(sendable=sendable, send_time=datetime.now(), state = "queued", filename = "Completed") event1.save() event2 = ScheduledEvent(sendable=sendable, send_time=datetime.now(), state = "queued", filename = "Expired") event2.save() # now: the real testing scheduler.check_spool_files() self.assertEquals(ScheduledEvent.objects.get(pk = event1.pk).state, \ "done") self.assertEquals(ScheduledEvent.objects.get(pk = event2.pk).state, \ "new") event2.filename = "Expired" event2.save() scheduler.check_spool_files() self.assertEquals(ScheduledEvent.objects.get(pk = event2.pk).state, \ "new") self.assertEquals(ScheduledEvent.objects.get(pk = event2.pk).retry, 1) event2.retry = settings.ASTERISK_RETRY event2.filename = "Expired" event2.save() scheduler.check_spool_files() self.assertEquals(ScheduledEvent.objects.get(pk = event2.pk).state, \ "failed") event3 = ScheduledEvent(sendable=sendable, send_time=datetime.now(), state = "queued", filename = "Failed") event3.save() scheduler.check_spool_files() self.assertEquals(ScheduledEvent.objects.get(pk = event3.pk).state, \ "failed") # change everything back to normal event1.delete() event2.delete() event3.delete() scheduler.get_spoolfile_status = original_get_spoolfile_status