def test_get_enketo_single_submit_url(self, mocked): """Test get_single_submit_url. Ensures single submit url is being received. """ request = RequestFactory().get('/') mocked_response = { "single_url": "https://enketo.ona.io/single/::XZqoZ94y", "code": 200 } enketo_url = settings.ENKETO_URL + "/api/v2/survey/single/once" username = "******" server_url = get_form_url(request, username, settings.ENKETO_PROTOCOL, True, xform_pk=1) url = '{}?server_url={}&form_id={}'.format(enketo_url, server_url, "tag_team") mocked.get(url, json=mocked_response) response = get_enketo_single_submit_url(request, username, id_string="tag_team", xform_pk=1) self.assertEqual(response, 'https://enketo.ona.io/single/::XZqoZ94y')
def test_get_enketo_single_submit_url(self, mocked): """Test get_single_submit_url. Ensures single submit url is being received. """ request = RequestFactory().get('/') mocked_response = { "single_url": "https://enketo.ona.io/single/::XZqoZ94y", "code": 200 } enketo_url = settings.ENKETO_URL + "/api/v2/survey/single/once" username = "******" server_url = get_form_url( request, username, settings.ENKETO_PROTOCOL, True, xform_pk=1) url = '{}?server_url={}&form_id={}'.format( enketo_url, server_url, "tag_team") mocked.get(url, json=mocked_response) response = get_enketo_single_submit_url( request, username, id_string="tag_team", xform_pk=1) self.assertEqual( response, 'https://enketo.ona.io/single/::XZqoZ94y')
def enketo(self, request, **kwargs): """Expose enketo urls.""" survey_type = self.kwargs.get('survey_type') or \ request.GET.get('survey_type') self.object = self.get_object() form_url = get_form_url(request, self.object.user.username, protocol=settings.ENKETO_PROTOCOL, xform_pk=self.object.pk, generate_consistent_urls=True) data = {'message': _(u"Enketo not properly configured.")} http_status = status.HTTP_400_BAD_REQUEST try: # pass default arguments to enketo_url to prepopulate form fields request_vars = request.GET defaults = generate_enketo_form_defaults(self.object, **request_vars) url = enketo_url(form_url, self.object.id_string, **defaults) preview_url = get_enketo_preview_url(request, self.object.user.username, self.object.id_string, xform_pk=self.object.pk) except EnketoError as e: data = {'message': _(u"Enketo error: %s" % e)} else: if survey_type == 'single': single_submit_url = get_enketo_single_submit_url( request, self.object.user.username, self.object.id_string, xform_pk=self.object.pk) data = {"single_submit_url": single_submit_url} elif url and preview_url: http_status = status.HTTP_200_OK data = {"enketo_url": url, "enketo_preview_url": preview_url} return Response(data, http_status)
def enketo(self, request, **kwargs): """Expose enketo urls.""" survey_type = self.kwargs.get('survey_type') or \ request.GET.get('survey_type') self.object = self.get_object() form_url = get_form_url( request, self.object.user.username, settings.ENKETO_PROTOCOL, xform_pk=self.object.pk) data = {'message': _(u"Enketo not properly configured.")} http_status = status.HTTP_400_BAD_REQUEST try: # pass default arguments to enketo_url to prepopulate form fields request_vars = request.GET defaults = generate_enketo_form_defaults( self.object, **request_vars) url = enketo_url( form_url, self.object.id_string, **defaults) preview_url = get_enketo_preview_url(request, self.object.user.username, self.object.id_string, xform_pk=self.object.pk) except EnketoError as e: data = {'message': _(u"Enketo error: %s" % e)} else: if survey_type == 'single': single_submit_url = get_enketo_single_submit_url( request, self.object.user.username, self.object.id_string, xform_pk=self.object.pk) data = {"single_submit_url": single_submit_url} elif url and preview_url: http_status = status.HTTP_200_OK data = {"enketo_url": url, "enketo_preview_url": preview_url} return Response(data, http_status)