def test_should_create_rapid_pro_poll_response(self): response = self.client.post(self.API_ENDPOINT, data=self.expected_poll_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, retrieved_poll_response.count())
def test_should_process_special_test_response(self): response = self.client.post(self.API_ENDPOINT, data=self.special_response_for_rapidtester) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.special_response) self.assertEqual(0, retrieved_poll_response.count())
def test_should_assign_response_location_to_mobile_user_location(self): response = self.client.post(self.API_ENDPOINT, data=self.expected_poll_response) retrieved_poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(201, response.status_code) self.assertEqual(self.village, retrieved_poll_response[0].location)
def test_should_save_no_text_poll_response(self): response = self.client.post(self.API_ENDPOINT, data=self.no_text_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.no_text_message) self.assertEqual(1, retrieved_poll_response.count())
def test_save_poll_response(self): self.poll_response['poll'] = self.poll PollResponse(**self.poll_response).save() poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, poll_response.count())
def test_should_process_and_categorise_yesno_poll_responses(self): self.poll_attr['ptype'] = 'yesno' self.poll_attr['keyword'] = 'akeyword' poll = Poll(**self.poll_attr).save() self.poll_response['text'] = 'yes' PollResponse(**self.poll_response).save() poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, poll_response.count()) yes_category = ResponseCategory.objects(**dict(poll=poll, name='yes')).first() self.assertEqual(1, PollResponseCategory.objects.count()) self.assertEqual(1, PollResponseCategory.objects(**dict(response_category=yes_category, poll_response=poll_response.first())).count()) #a 'NO' Response self.poll_response['text'] = 'nah' PollResponse(**self.poll_response).save() poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, poll_response.count()) no_category = ResponseCategory.objects(**dict(poll=poll, name='no')).first() self.assertEqual(2, PollResponseCategory.objects.count()) self.assertEqual(1, PollResponseCategory.objects(**dict(response_category=no_category, poll_response=poll_response.first())).count()) #a 'unknown' Response self.poll_response['text'] = 'very wiered response' PollResponse(**self.poll_response).save() poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, poll_response.count()) unknown_category = ResponseCategory.objects(**dict(poll=poll, name='unknown')).first() self.assertEqual(3, PollResponseCategory.objects.count()) #bad response not associated with poll self.assertEqual(1, PollResponseCategory.objects(**dict(response_category=unknown_category, poll_response=poll_response.first())).count()) #should count results results_count = poll.yesno_poll_stats() self.assertEqual(1, results_count['yes']) self.assertEqual(1, results_count['unknown']) self.assertEqual(1, results_count['no'])
def test_should_create_yesno_poll_response(self): self.poll_attr['ptype'] = 'yesno' self.poll_attr['keyword'] = 'weiredkey' self.poll_attr['question'] = 'Are there any disasters in your area? YES or NO' self.poll = Poll(**self.poll_attr).save() self.expected_poll_response['text'] = 'NECOCPoll.yes' self.poll_response['text'] = 'NECOCPoll.yes' response = self.client.post(self.API_ENDPOINT, data=self.expected_poll_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, retrieved_poll_response.count()) self.assertTrue(retrieved_poll_response[0].is_categorized())
def test_should_process_and_categorise_yesno_poll_responses_when_yesno_is_misplaced(self): self.poll_attr['ptype'] = 'yesno' self.poll_attr['keyword'] = 'akeyword' poll = Poll(**self.poll_attr).save() self.poll_response['text'] = 'NECOCPoll a very bad yes answer' PollResponse(**self.poll_response).save() poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, poll_response.count()) yes_category = ResponseCategory.objects(**dict(poll=poll, name='yes')).first() self.assertEqual(1, PollResponseCategory.objects.count()) self.assertEqual(1, PollResponseCategory.objects(**dict(response_category=yes_category, poll_response=poll_response.first())).count())
def test_should_create_yesno_poll_response(self): self.poll_attr['ptype'] = 'yesno' self.poll_attr['keyword'] = 'weiredkey' self.poll_attr[ 'question'] = 'Are there any disasters in your area? YES or NO' self.poll = Poll(**self.poll_attr).save() self.expected_poll_response['text'] = 'NECOCPoll.yes' self.poll_response['text'] = 'NECOCPoll.yes' response = self.client.post(self.API_ENDPOINT, data=self.expected_poll_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(1, retrieved_poll_response.count()) self.assertTrue(retrieved_poll_response[0].is_categorized())
def test_should_create_dotted_poll_response(self): response = self.client.post(self.API_ENDPOINT, data=self.dotted_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.dotted_message) self.assertEqual(1, retrieved_poll_response.count())
def test_should_process_special_test_response(self): response = self.client.post(self.API_ENDPOINT, data=self.special_response_for_rapidtester) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.special_response) self.assertEqual(0, retrieved_poll_response.count())
def test_should_save_wrong_format_poll_response(self): response = self.client.post(self.API_ENDPOINT, data=self.wrong_format_response) self.assertEqual(201, response.status_code) retrieved_poll_response = PollResponse.objects(**self.wrong_format_message) self.assertEqual(1, retrieved_poll_response.count())
def test_should_assign_response_location_to_mobile_user_location(self): response = self.client.post(self.API_ENDPOINT, data=self.expected_poll_response) retrieved_poll_response = PollResponse.objects(**self.poll_response) self.assertEqual(201, response.status_code) self.assertEqual(self.village, retrieved_poll_response[0].location)