def get_queryset(self):
     if self.request.DATA.get("not_assigned"):
         return PollResponse.objects(**dict(poll=None)).order_by("-created_at")
     else:
         fields = PollResponse._fields_ordered
         query_params = {key: value or None for key, value in self.request.GET.items() if key in fields}
         return PollResponse.objects(**query_params).order_by("-created_at")
 def get_queryset(self):
     if self.request.DATA.get('not_assigned'):
         return PollResponse.objects(**dict(poll=None)).order_by('-created_at')
     else:
         fields = PollResponse._fields_ordered
         query_params = {key: value or None for key, value in self.request.GET.items() if key in fields}
         return PollResponse.objects(**query_params).order_by('-created_at')
    def test_post_export_poll_response(self):
        poll_response = PollResponse(**self.poll_response_attr).save()
        poll_response_attr2 = self.poll_response_attr.copy()
        poll_response_attr2['text'] = "NECOCPoll %s whatever2"%self.poll['keyword']
        poll_response2 = PollResponse(**poll_response_attr2).save()

        self.login_user()
        response = self.client.get('/export/poll-responses/%s/'%str(self.poll.id))

        self.assertEquals(200, response.status_code)
        self.assertEquals(response.get('Content-Type'), 'text/csv')
        file_name = "disaster_space_responses.csv"
        self.assertEquals(response.get('Content-Disposition'), 'attachment; filename="%s"' % file_name)

        contents = "%s\r\n%s\r\n%s\r\n%s" % ("".join('sep=;'), "".join(self.headings), "".join(self.get_poll_response_csv_row(poll_response)),
                                       "".join(self.get_poll_response_csv_row(poll_response2)))
        self.assertEqual(contents, response.content)
Example #4
0
    def test_should_know_its_number_of_responses(self):
        poll = Poll(**self.poll).save()
        poll_response_attr = dict(phone_no='123455', text="NECOC There is a fire", relayer_id=234,
                        run_id=23243, poll=poll)

        poll_response = PollResponse(**poll_response_attr).save()

        self.assertEqual(1, poll.number_of_responses())
        self.assertIn(poll_response, poll.responses())
    def test_exports_poll_responses(self):
        response = PollResponse(**self.poll_response_attr).save()
        poll_response_attr2 = self.poll_response_attr.copy()
        poll_response_attr2[
            'text'] = "NECOCPoll %s whatever2" % self.poll['keyword']
        response2 = PollResponse(**poll_response_attr2).save()

        expected_data = [
            self.delimiter_line, self.headings,
            self.get_poll_response_csv_row(response),
            self.get_poll_response_csv_row(response2)
        ]

        export_poll_service = ExportPollResponsesService(self.poll)
        actual_data = export_poll_service.get_formatted_responses()

        self.assertEqual(len(expected_data), len(actual_data))
        self.assertIn(expected_data[0], actual_data)
        self.assertIn(expected_data[1], actual_data)
        self.assertIn(expected_data[2], actual_data)
Example #6
0
    def test_should_get_a_list_of_polls(self):
        poll = Poll(**self.poll_to_post).save()
        poll_response_attr = dict(phone_no='123455',
                                  text="NECOC There is a fire",
                                  relayer_id=234,
                                  run_id=23243,
                                  poll=poll)

        PollResponse(**poll_response_attr).save()

        response = self.client.get(self.POLL_ENDPOINT, format='json')

        self.assertEqual(200, response.status_code)
        self.assertEqual(1, len(response.data))
        expected_poll = self.poll_to_post.copy()
        expected_poll['number_of_responses'] = 1
        self.assertDictContainsSubset(expected_poll, response.data[0])
Example #7
0
 def responses(self):
     from dms.models import PollResponse
     return PollResponse.objects(poll=self)
Example #8
0
 def responses(self):
     from dms.models import PollResponse
     return PollResponse.objects(poll=self)
 def __init__(self, poll):
     self.poll = poll
     self.responses = PollResponse.objects(poll=self.poll)
 def __init__(self, poll):
     self.poll = poll
     self.responses = PollResponse.objects(poll=self.poll)