def test_that_retrieves_last_step_for_a_script_progress_that_is_in_last_step(self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=third_step) self.assertEqual(third_step, view.get_current_step(script_progress))
def test_that_retrieves_last_step_for_a_script_progress_that_is_in_last_step( self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=third_step) self.assertEqual(third_step, view.get_current_step(script_progress))
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 = ViewCurrentPoll()
class CurrentPollTest(unittest.TestCase): def setUp(self): self.view = ViewCurrentPoll() def build_connection(self, contact=Contact()): return Connection(identity=77777, backend=Backend(name='my backend'), contact=contact) def get_http_response_from_view(self, kwargs, view): request_factory = RequestFactory() auth_string = base64.b64encode("who:why") fake_request = request_factory.get('/', **{"HTTP_AUTHORIZATION": ("Basic %s" % auth_string)}) self.view.validate_credentials = Mock(return_value=True) return view.dispatch(fake_request, None, **kwargs) def setup_fake_connection(self): fake_connection = Mock() fake_connection.return_value = self.build_connection() self.view.get_connection = fake_connection def setup_fake_poll(self, fake_poll_return_value): fake_poll = Mock() fake_poll.return_value = fake_poll_return_value self.view.get_current_poll_for = fake_poll return fake_poll def test_404_is_raised_if_backend_does_not_exist(self): with self.assertRaises(Http404): response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) def test_that_in_case_of_post_it_raise_405(self): http_response = self.view.post(None) self.assertEqual(405, http_response.status_code) def test_that_poll_null_for_a_registered_user_with_no_poll(self): self.setup_fake_connection() self.setup_fake_poll(None) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual(None, data['poll']) def test_that_poll_data_for_a_registered_user_that_has_a_poll(self): self.setup_fake_connection() poll_data = {"id": 1, "name": "Test Poll", "question": "Is working?"} fake_poll = self.setup_fake_poll(poll_data) self.view.get_current_poll_for = fake_poll self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual(poll_data, data['poll']) def test_that_for_an_unregistered_user_script_progress_object_is_created_if_it_does_not_exist(self): fake_connection = Mock() fake_connection.return_value = self.build_connection(None) self.view.get_connection = fake_connection self.view.get_current_step = Mock(return_value=None) self.view.get_script_progress = Mock(return_value=ScriptProgress(script=Script(slug="ureport_autoreg2"))) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual("ureport_autoreg2", self.view.script_progress.script.slug) def test_that_retrieves_poll_data_from_step_of_script_progress(self): fake_connection = Mock() fake_connection.return_value = self.build_connection(None) self.view.get_connection = fake_connection self.view.get_script_progress = Mock(return_value=ScriptProgress(script=Script(slug="ureport_autoreg2"))) fake_get_next_step = Mock(return_value=ScriptStep(poll=Poll(name="test poll", question="Is it working?"))) self.view.get_current_step = fake_get_next_step self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) data = json.loads(response.content) self.assertEqual(True, data['poll']['is_registration']) def test_that_data_from_poll_should_have_all_the_neccessary_fields(self): question = "is this really a poll ? or a pool ? or a loop?" name = "this is a poll" an_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1) default_response = "thanks" poll = Poll(name=name, question=question, id=12, type="t", start_date=an_hour_ago, default_response=default_response, response_type="a") expected_poll_data = {"id": "12", "question": question, "name": name, "language": None, "question_voice": None, "start_date": an_hour_ago.strftime(self.view.get_datetime_format()), "end_date": None, "is_registration": False, "type": "t", "is_registration_end": False, "default_response": default_response, "default_response_voice": None, "response_type": "allow_all"} self.assertDictEqual(expected_poll_data, self.view.get_data_from_poll(poll)) def test_that_if_the_step_is_a_message_the_poll_type_is_none(self): message = "hello hallo who aaa" fake_get_next_step = Mock(return_value=ScriptStep(message=message)) self.view.get_current_step = fake_get_next_step expected_data = {"name": "Message", "question": message, "type": "none", "id": None, "is_registration_end": False} actual_data = self.view.get_data_from_message(message) self.assertDictEqual(expected_data, actual_data) def test_that_if_the_step_is_a_message_the_poll_id_is_none(self): message = "hello hallo who aaa" fake_get_next_step = Mock(return_value=ScriptStep(message=message)) self.view.get_current_step = fake_get_next_step expected_data = {"name": "Message", "question": message, "type": "none", "id": None, "is_registration_end": False} actual_data = self.view.get_data_from_message(message) self.assertDictEqual(expected_data, actual_data) def test_that_script_progress_moves_on_when_current_step_is_message(self): self.setup_fake_connection() mock_progress = MagicMock() mock_progress.moveon = MagicMock() self.view.get_script_progress = Mock(return_value=mock_progress) self.view.contact_exists = Mock(return_value=False) self.view.get_current_step = Mock( return_value=ScriptStep(message="Welcome", script=Script(slug='ureport_autoreg2'), order=1)) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view({"backend": "my_backend", "user_address": "77777"}, self.view) self.assertEqual(True, mock_progress.moveon.called)
('', 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()), )
class CurrentPollTest(unittest.TestCase): def setUp(self): self.view = ViewCurrentPoll() def build_connection(self, contact=Contact()): return Connection(identity=77777, backend=Backend(name='my backend'), contact=contact) def get_http_response_from_view(self, kwargs, view): request_factory = RequestFactory() auth_string = base64.b64encode("who:why") fake_request = request_factory.get( '/', **{"HTTP_AUTHORIZATION": ("Basic %s" % auth_string)}) self.view.validate_credentials = Mock(return_value=True) return view.dispatch(fake_request, None, **kwargs) def setup_fake_connection(self): fake_connection = Mock() fake_connection.return_value = self.build_connection() self.view.get_connection = fake_connection def setup_fake_poll(self, fake_poll_return_value): fake_poll = Mock() fake_poll.return_value = fake_poll_return_value self.view.get_current_poll_for = fake_poll return fake_poll def test_404_is_raised_if_backend_does_not_exist(self): with self.assertRaises(Http404): response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) def test_that_in_case_of_post_it_raise_405(self): http_response = self.view.post(None) self.assertEqual(405, http_response.status_code) def test_that_poll_null_for_a_registered_user_with_no_poll(self): self.setup_fake_connection() self.setup_fake_poll(None) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual(None, data['poll']) def test_that_poll_data_for_a_registered_user_that_has_a_poll(self): self.setup_fake_connection() poll_data = {"id": 1, "name": "Test Poll", "question": "Is working?"} fake_poll = self.setup_fake_poll(poll_data) self.view.get_current_poll_for = fake_poll self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual(poll_data, data['poll']) def test_that_for_an_unregistered_user_script_progress_object_is_created_if_it_does_not_exist( self): fake_connection = Mock() fake_connection.return_value = self.build_connection(None) self.view.get_connection = fake_connection self.view.get_current_step = Mock(return_value=None) self.view.get_script_progress = Mock(return_value=ScriptProgress( script=Script(slug="ureport_autoreg2"))) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) data = json.loads(response.content) self.assertEqual(True, data['success']) self.assertEqual("ureport_autoreg2", self.view.script_progress.script.slug) def test_that_retrieves_poll_data_from_step_of_script_progress(self): fake_connection = Mock() fake_connection.return_value = self.build_connection(None) self.view.get_connection = fake_connection self.view.get_script_progress = Mock(return_value=ScriptProgress( script=Script(slug="ureport_autoreg2"))) fake_get_next_step = Mock(return_value=ScriptStep( poll=Poll(name="test poll", question="Is it working?"))) self.view.get_current_step = fake_get_next_step self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) data = json.loads(response.content) self.assertEqual(True, data['poll']['is_registration']) def test_that_data_from_poll_should_have_all_the_neccessary_fields(self): question = "is this really a poll ? or a pool ? or a loop?" name = "this is a poll" an_hour_ago = datetime.datetime.now() - datetime.timedelta(hours=1) default_response = "thanks" poll = Poll(name=name, question=question, id=12, type="t", start_date=an_hour_ago, default_response=default_response, response_type="a") expected_poll_data = { "id": "12", "question": question, "name": name, "language": None, "question_voice": None, "start_date": an_hour_ago.strftime(self.view.get_datetime_format()), "end_date": None, "is_registration": False, "type": "t", "is_registration_end": False, "default_response": default_response, "default_response_voice": None, "response_type": "allow_all" } self.assertDictEqual(expected_poll_data, self.view.get_data_from_poll(poll)) def test_that_if_the_step_is_a_message_the_poll_type_is_none(self): message = "hello hallo who aaa" fake_get_next_step = Mock(return_value=ScriptStep(message=message)) self.view.get_current_step = fake_get_next_step expected_data = { "name": "Message", "question": message, "type": "none", "id": None, "is_registration_end": False } actual_data = self.view.get_data_from_message(message) self.assertDictEqual(expected_data, actual_data) def test_that_if_the_step_is_a_message_the_poll_id_is_none(self): message = "hello hallo who aaa" fake_get_next_step = Mock(return_value=ScriptStep(message=message)) self.view.get_current_step = fake_get_next_step expected_data = { "name": "Message", "question": message, "type": "none", "id": None, "is_registration_end": False } actual_data = self.view.get_data_from_message(message) self.assertDictEqual(expected_data, actual_data) def test_that_script_progress_moves_on_when_current_step_is_message(self): self.setup_fake_connection() mock_progress = MagicMock() mock_progress.moveon = MagicMock() self.view.get_script_progress = Mock(return_value=mock_progress) self.view.contact_exists = Mock(return_value=False) self.view.get_current_step = Mock(return_value=ScriptStep( message="Welcome", script=Script( slug='ureport_autoreg2'), order=1)) self.view.get_backend = Mock(return_value=Backend(name="my_backend")) response = self.get_http_response_from_view( { "backend": "my_backend", "user_address": "77777" }, self.view) self.assertEqual(True, mock_progress.moveon.called)
class CurrentPollTest(TestCase): def setUp(self): self.view = ViewCurrentPoll() def test_that_it_retrieves_data_from_poll_when_contact_has_a_poll(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) poll, poll_created = Poll.objects.get_or_create(name="Test Poll", question="Is working?", user=user, start_date=an_hour_ago) poll.contacts = [contact] poll.save() current_poll = self.view.get_current_poll_for(contact) self.assertEqual("Test Poll", current_poll["name"]) self.assertEqual("Is working?", current_poll["question"]) def test_that_it_retrieves_data_from_active_poll(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() current_poll = self.view.get_current_poll_for(contact) self.assertEqual("Test Poll", current_poll["name"]) self.assertEqual("Is working?", current_poll["question"]) def test_that_retrieves_none_when_contact_do_not_have_a_poll(self): contact = Contact() contact.save() self.assertEqual(None, self.view.get_current_poll_for(contact)) def test_that_gets_the_progress_object_for_ureport_autoreg2(self): backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_script_progress = ScriptProgress.objects.create( connection=connection, script=script) script, created = Script.objects.get_or_create(slug="ureport_autoreg") second_script_progress = ScriptProgress.objects.create( connection=connection, script=script) self.assertEqual(first_script_progress, self.view.get_script_progress(connection)) def test_that_returns_new_script_progress_if_connection_is_not_associated_to_script_progress( self): script_autoreg2, created = Script.objects.get_or_create( slug="ureport_autoreg2") backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) second_connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="other_script") first_step = ScriptStep.objects.create(script=script_autoreg2, order=1) second_step = ScriptStep.objects.create(script=script_autoreg2, order=2) script_progress = ScriptProgress.objects.create(connection=connection, script=script) self.assertEqual("ureport_autoreg2", self.view.get_script_progress(connection).script.slug) script_session_list = ScriptSession.objects.filter( script=script_autoreg2, connection=connection) self.assertEqual(1, len(script_session_list)) def test_that_raise_exception_if_script_ureport_autoreg2_does_not_exist( self): backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg") with self.assertRaises(Script.DoesNotExist): self.view.get_script_progress(connection) def test_that_retrieves_same_step_for_script_progress_that_is_in_progress( self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=second_step) self.assertEqual(second_step, view.get_current_step(script_progress)) def test_that_retrieves_last_step_for_a_script_progress_that_is_in_last_step( self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=third_step) self.assertEqual(third_step, view.get_current_step(script_progress))
class CurrentPollTest(TestCase): def setUp(self): self.view = ViewCurrentPoll() def test_that_it_retrieves_data_from_poll_when_contact_has_a_poll(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) poll, poll_created = Poll.objects.get_or_create(name="Test Poll", question="Is working?", user=user, start_date=an_hour_ago) poll.contacts = [contact] poll.save() current_poll = self.view.get_current_poll_for(contact) self.assertEqual("Test Poll", current_poll["name"]) self.assertEqual("Is working?", current_poll["question"]) def test_that_it_retrieves_data_from_active_poll(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() current_poll = self.view.get_current_poll_for(contact) self.assertEqual("Test Poll", current_poll["name"]) self.assertEqual("Is working?", current_poll["question"]) def test_that_retrieves_none_when_contact_do_not_have_a_poll(self): contact = Contact() contact.save() self.assertEqual(None, self.view.get_current_poll_for(contact)) def test_that_gets_the_progress_object_for_ureport_autoreg2(self): backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_script_progress = ScriptProgress.objects.create(connection=connection, script=script) script, created = Script.objects.get_or_create(slug="ureport_autoreg") second_script_progress = ScriptProgress.objects.create(connection=connection, script=script) self.assertEqual(first_script_progress, self.view.get_script_progress(connection)) def test_that_returns_new_script_progress_if_connection_is_not_associated_to_script_progress(self): script_autoreg2, created = Script.objects.get_or_create(slug="ureport_autoreg2") backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) second_connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="other_script") first_step = ScriptStep.objects.create(script=script_autoreg2, order=1) second_step = ScriptStep.objects.create(script=script_autoreg2, order=2) script_progress = ScriptProgress.objects.create(connection=connection, script=script) self.assertEqual("ureport_autoreg2", self.view.get_script_progress(connection).script.slug) script_session_list = ScriptSession.objects.filter(script=script_autoreg2, connection=connection) self.assertEqual(1, len(script_session_list)) def test_that_raise_exception_if_script_ureport_autoreg2_does_not_exist(self): backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg") with self.assertRaises(Script.DoesNotExist): self.view.get_script_progress(connection) def test_that_retrieves_same_step_for_script_progress_that_is_in_progress(self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=second_step) self.assertEqual(second_step, view.get_current_step(script_progress)) def test_that_retrieves_last_step_for_a_script_progress_that_is_in_last_step(self): view = ViewCurrentPoll() backend = Backend.objects.create(name="test_backend") connection = Connection.objects.create(identity="7777", backend=backend) script, created = Script.objects.get_or_create(slug="ureport_autoreg2") first_step = ScriptStep.objects.create(script=script, order=1) second_step = ScriptStep.objects.create(script=script, order=2) third_step = ScriptStep.objects.create(script=script, order=3) script_progress = ScriptProgress.objects.create(connection=connection, script=script, step=third_step) self.assertEqual(third_step, view.get_current_step(script_progress))