class PollTopicsTest(TestCase): def setUp(self): self.view = PollTopicsApiView() def test_that_only_active_polls_are_returned(self): contact, contact_created = Contact.objects.get_or_create(name='John Jonny') user, user_created = User.objects.get_or_create(username="******") an_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1) two_hours_ago = datetime.datetime.now() - datetime.timedelta(hours=2) thirty_minutes_ago = datetime.datetime.now() - datetime.timedelta(minutes=30) poll, poll_created = Poll.objects.get_or_create(name="Test Poll", question="Is working?", user=user, start_date=two_hours_ago) second_poll, poll_created = Poll.objects.get_or_create(name="Test Poll 2", question="Is working 2 ?", user=user, start_date=an_hour_ago, end_date=thirty_minutes_ago) third_poll, poll_created = Poll.objects.get_or_create(name="Test Poll 3", question="Is working 3 ?", user=user) poll.contacts = [contact] poll.save() second_poll.contacts = [contact] second_poll.save() third_poll.contacts = [contact] third_poll.save() poll_topics = self.view.get_polls_for_contact(contact) self.assertListEqual([{"poll_id": poll.id, "label": "Test Poll"}], poll_topics)
class PollTopicsTest(TestCase): def setUp(self): self.view = PollTopicsApiView() def test_that_only_active_polls_are_returned(self): contact, contact_created = Contact.objects.get_or_create( name='John Jonny') user, user_created = User.objects.get_or_create(username="******") an_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1) two_hours_ago = datetime.datetime.now() - datetime.timedelta(hours=2) thirty_minutes_ago = datetime.datetime.now() - datetime.timedelta( minutes=30) poll, poll_created = Poll.objects.get_or_create( name="Test Poll", question="Is working?", user=user, start_date=two_hours_ago) second_poll, poll_created = Poll.objects.get_or_create( name="Test Poll 2", question="Is working 2 ?", user=user, start_date=an_hour_ago, end_date=thirty_minutes_ago) third_poll, poll_created = Poll.objects.get_or_create( name="Test Poll 3", question="Is working 3 ?", user=user) poll.contacts = [contact] poll.save() second_poll.contacts = [contact] second_poll.save() third_poll.contacts = [contact] third_poll.save() poll_topics = self.view.get_polls_for_contact(contact) self.assertListEqual([{ "poll_id": poll.id, "label": "Test Poll" }], poll_topics)
class PollTopicsTestCase(TestCase): def setUp(self): self.view = PollTopicsApiView() self.request_factory = RequestFactory() def test_that_post_returns_405_status_code(self): fake_request = self.request_factory.post("/") response = self.view.post(fake_request) self.assertEqual(405, response.status_code) def test_that_if_the_backend_does_not_exist_you_get_a_404(self): fake_request = self.request_factory.get("/", **{"backend": "console", "user_address": "999"}) with self.assertRaises(Http404): self.view.dispatch(fake_request) def setup_get_request(self, backend, connection): self.view.get_backend = Mock(return_value=backend) self.view.get_connection = Mock(return_value=connection) self.view.validate_credentials = Mock(return_value=True) fake_request = self.request_factory.get("/", **{"backend": "console", "user_address": "999", "HTTP_AUTHORIZATION": ( "Basic %s" % base64.b64encode("who:why"))}) return fake_request def test_that_if_the_user_address_does_not_exist_you_get_a_404(self): backend = Backend(id=89) connection = Connection(identity=999, backend=backend) fake_request = self.setup_get_request(backend, connection) with self.assertRaises(Http404): self.view.dispatch(fake_request) def test_that_if_there_are_no_polls_for_the_user_it_returns_success_and_an_empty_list(self): backend = Backend(id=89) connection = Connection(identity=999, backend=backend, contact=Contact()) fake_request = self.setup_get_request(backend, connection) self.view.get_polls_for_contact = Mock(return_value=[]) response = self.view.dispatch(fake_request) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual([], data['poll_topics'])
url(r"^pulse/(?P<period>\w+)/$", pulse, name='pulse_json'), url(r"^map-cloud/$", map_cloud, name='map_cloud'), url(r"^upload-contacts", upload_users, name='upload_users'), url(r"^access/dashboards/$", access_dashboards, name='access_dashboards'), url(r"^assign-group", assign_group, name="assign_group"), url(r'^start_poll_export/(\d+)/$', start_poll_export, name="start_poll_export"), url(r"^backend/vumi/$", VumiBackendView.as_view(backend_name="vumi")), url(r"^api/v1/ureporters/registration/steps$", RegistrationStepsView.as_view()), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)$", ViewUReporter.as_view(), name="view_ureporter_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/polls/current$", ViewCurrentPoll.as_view(), name="view_current_poll_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/poll/(?P<poll_id>\d+)/responses/$", SubmitPollResponses.as_view(), name="submit_poll_response_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/polls/topics$", PollTopicsApiView.as_view(), name="poll_topics_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/reports/$", SubmitReportApiView.as_view(), name="submit_report_api"), url( r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/poll/(?P<poll_id>\d+)/summary$", PollSummary.as_view()), )
def setUp(self): self.view = PollTopicsApiView()
('', False, '', None)], }, name="ureport-contact2"), (r'^api/', include(v1_api.urls)), url(r'^comfirm/(?P<key>.+)/$', comfirm_message_sending, name="comfirm"), url(r'^comfirmmessages/(?P<key>.+)/$', comfirmmessages, name="comfirm-messages"), url(r"^dumpreport/(\d+)/$", generate_poll_dump_report), url(r"^districtreport/(\d+)/$", generate_per_district_report), url(r"^pulse/$", pulse, name='pulse_json'), url(r"^pulse/(?P<period>\w+)/$", pulse, name='pulse_json'), url(r"^map-cloud/$", map_cloud, name='map_cloud'), url(r"^upload-contacts", upload_users, name='upload_users'), url(r"^access/dashboards/$", access_dashboards, name='access_dashboards'), url(r"^assign-group", assign_group, name="assign_group"), url(r'^start_poll_export/(\d+)/$', start_poll_export, name="start_poll_export"), url(r"^backend/vumi/$", VumiBackendView.as_view(backend_name="vumi")), url(r"^api/v1/ureporters/registration/steps$", RegistrationStepsView.as_view()), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)$", ViewUReporter.as_view(), name="view_ureporter_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/polls/current$", ViewCurrentPoll.as_view(), name="view_current_poll_api"), url( r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/poll/(?P<poll_id>\d+)/responses/$", SubmitPollResponses.as_view(), name="submit_poll_response_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/polls/topics$", PollTopicsApiView.as_view(), name="poll_topics_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/reports/$", SubmitReportApiView.as_view(), name="submit_report_api"), url(r"^api/v1/ureporters/(?P<backend>\w+)/(?P<user_address>\+?\w+)/poll/(?P<poll_id>\d+)/summary$", PollSummary.as_view()), )
def setUp(self): self.view = PollTopicsApiView() self.request_factory = RequestFactory()