Esempio n. 1
0
 def test_view_download_submission(self):
     self._publish_xml_form()
     self.maxDiff = None
     self._submit_transport_instance_w_attachment()
     instanceId = '5b2cc313-fc09-437e-8149-fcd32f695d41'
     instance = Instance.objects.get(uuid=instanceId)
     formId = '%(formId)s[@version=null and @uiVersion=null]/' \
              '%(formId)s[@key=uuid:%(instanceId)s]' % {
                  'formId': self.xform.id_string,
                  'instanceId': instanceId}
     params = {'formId': formId}
     request = self.factory.get(self._download_submission_url, params)
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 401)
     auth = DigestAuth(self.login_username, self.login_password)
     request.META.update(auth(request.META, response))
     response = view_download_submission(request, self.user.username)
     text = "uuid:%s" % instanceId
     download_submission_path = os.path.join(self.this_directory,
                                             'fixtures', 'transportation',
                                             'view',
                                             'downloadSubmission.xml')
     with codecs.open(download_submission_path, encoding='utf-8') as f:
         text = f.read()
         text = text.replace('{{submissionDate}}',
                             instance.date_created.isoformat())
         text = text.replace('{{xform_uuid}}', self.xform.uuid)
         self.assertContains(response, instanceId, status_code=200)
         self.assertMultiLineEqual(response.content, text)
Esempio n. 2
0
 def test_view_downloadSubmission(self):
     self._publish_xml_form()
     self.maxDiff = None
     self._submit_transport_instance_w_attachment()
     instanceId = u'5b2cc313-fc09-437e-8149-fcd32f695d41'
     instance = Instance.objects.get(uuid=instanceId)
     formId = u'%(formId)s[@version=null and @uiVersion=null]/' \
              u'%(formId)s[@key=uuid:%(instanceId)s]' % {
                  'formId': self.xform.id_string,
                  'instanceId': instanceId}
     params = {'formId': formId}
     request = self.factory.get(self._download_submission_url, params)
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 401)
     auth = DigestAuth(self.login_username, self.login_password)
     request.META.update(auth(request.META, response))
     response = view_download_submission(request, self.user.username)
     text = "uuid:%s" % instanceId
     download_submission_path = os.path.join(
         self.this_directory, 'fixtures', 'transportation',
         'view', 'downloadSubmission.xml')
     with codecs.open(download_submission_path, encoding='utf-8') as f:
         text = f.read()
         text = text.replace(u'{{submissionDate}}',
                             instance.date_created.isoformat())
         self.assertContains(response, instanceId, status_code=200)
         self.assertMultiLineEqual(response.content, text)
Esempio n. 3
0
 def test_view_download_submission_other_user(self):
     self._publish_xml_form()
     self.maxDiff = None
     self._submit_transport_instance_w_attachment()
     instanceId = '5b2cc313-fc09-437e-8149-fcd32f695d41'
     formId = '%(formId)s[@version=null and @uiVersion=null]/' \
              '%(formId)s[@key=uuid:%(instanceId)s]' % {
                  'formId': self.xform.id_string,
                  'instanceId': instanceId}
     params = {'formId': formId}
     # deno cannot view bob's downloadSubmission
     self._create_user('deno', 'deno')
     request = self.factory.get(self._download_submission_url, params)
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 401)
     auth = DigestAuth('deno', 'deno')
     request.META.update(auth(request.META, response))
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 403)
Esempio n. 4
0
 def test_view_downloadSubmission_OtherUser(self):
     self._publish_xml_form()
     self.maxDiff = None
     self._submit_transport_instance_w_attachment()
     instanceId = u'5b2cc313-fc09-437e-8149-fcd32f695d41'
     formId = u'%(formId)s[@version=null and @uiVersion=null]/' \
              u'%(formId)s[@key=uuid:%(instanceId)s]' % {
                  'formId': self.xform.id_string,
                  'instanceId': instanceId}
     params = {'formId': formId}
     # deno cannot view bob's downloadSubmission
     self._create_user('deno', 'deno')
     request = self.factory.get(self._download_submission_url, params)
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 401)
     auth = DigestAuth('deno', 'deno')
     request.META.update(auth(request.META, response))
     response = view_download_submission(request, self.user.username)
     self.assertEqual(response.status_code, 403)