def test_deleted_forms(self):
        """Test retrieving data of a merged dataset with no forms linked."""
        merged_dataset = self._create_merged_dataset()
        merged_xform = MergedXForm.objects.get(pk=merged_dataset['id'])
        merged_xform.xforms.all().delete()
        request = self.factory.get(
            '/',
            data={'sort': '{"_submission_time":1}',
                  'limit': '10'},
            **self.extra)
        data_view = DataViewSet.as_view({
            'get': 'list',
        })

        # DataViewSet /data/[pk] endpoint
        response = data_view(request, pk=merged_dataset['id'])
        self.assertEqual(response.status_code, 200, response.data)
        self.assertEqual(response.data, [])

        data = {'field_name': 'fruit'}
        view = ChartsViewSet.as_view({'get': 'retrieve'})

        request = self.factory.get('/charts', data, **self.extra)
        response = view(request, pk=merged_dataset['id'], format='html')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['data'].__len__(), 0)
Ejemplo n.º 2
0
 def setUp(self):
     super(self.__class__, self).setUp()
     # publish tutorial form as it has all the different field types
     self._publish_xls_file_and_set_xform(
         os.path.join(
             os.path.dirname(__file__),
             '..', 'fixtures', 'forms', 'tutorial', 'tutorial.xls'))
     self.api_client = APIClient()
     self.api_client.login(
         username=self.login_username, password=self.login_password)
     self.view = ChartsViewSet.as_view({
         'get': 'retrieve'
     })
     self.factory = APIRequestFactory()
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '1.xml'))
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '2.xml'))
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '3.xml'))
Ejemplo n.º 3
0
 def setUp(self):
     super(self.__class__, self).setUp()
     # publish tutorial form as it has all the different field types
     self._publish_xls_file_and_set_xform(
         os.path.join(
             os.path.dirname(__file__),
             '..', 'fixtures', 'forms', 'tutorial', 'tutorial.xls'))
     self.api_client = APIClient()
     self.api_client.login(
         username=self.login_username, password=self.login_password)
     self.view = ChartsViewSet.as_view({
         'get': 'retrieve'
     })
     self.factory = APIRequestFactory()
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '1.xml'))
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '2.xml'))
     self._make_submission(
         os.path.join(
             os.path.dirname(__file__), '..', 'fixtures', 'forms',
             'tutorial', 'instances', '3.xml'))
Ejemplo n.º 4
0
    def test_deleted_forms(self):
        """Test retrieving data of a merged dataset with no forms linked."""
        merged_dataset = self._create_merged_dataset()
        merged_xform = MergedXForm.objects.get(pk=merged_dataset['id'])
        merged_xform.xforms.all().delete()
        request = self.factory.get(
            '/',
            data={
                'sort': '{"_submission_time":1}',
                'limit': '10'
            },
            **self.extra)
        data_view = DataViewSet.as_view({
            'get': 'list',
        })

        # DataViewSet /data/[pk] endpoint
        response = data_view(request, pk=merged_dataset['id'])
        self.assertEqual(response.status_code, 200, response.data)
        self.assertEqual(response.data, [])

        data = {'field_name': 'fruit'}
        view = ChartsViewSet.as_view({'get': 'retrieve'})

        request = self.factory.get('/charts', data, **self.extra)
        response = view(request, pk=merged_dataset['id'], format='html')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['data'].__len__(), 0)
Ejemplo n.º 5
0
    def test_chart_list(self):
        self.view = ChartsViewSet.as_view({
            'get': 'list'
        })
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertEqual(response.status_code, 200)
        data = {'id': self.xform.pk, 'id_string': self.xform.id_string,
                'url': 'http://testserver/api/v1/charts/%s' % self.xform.pk}
        self.assertEqual(response.data, [data])

        request = self.factory.get('/charts')
        response = self.view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, [])
Ejemplo n.º 6
0
    def test_chart_list(self):
        self.view = ChartsViewSet.as_view({
            'get': 'list'
        })
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertNotEqual(response.get('Last-Modified'), None)
        self.assertEqual(response.status_code, 200)
        data = {'id': self.xform.pk, 'id_string': self.xform.id_string,
                'url': 'http://testserver/api/v1/charts/%s' % self.xform.pk}
        self.assertEqual(response.data, [data])

        request = self.factory.get('/charts')
        response = self.view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, [])
    def test_merged_dataset_charts(self):
        """Test /charts endpoint for a merged dataset works"""

        merged_dataset = self._create_merged_dataset()
        merged_xform = MergedXForm.objects.get(pk=merged_dataset['id'])
        _make_submissions_merged_datasets(merged_xform)

        data = {'field_name': 'fruit'}
        view = ChartsViewSet.as_view({'get': 'retrieve'})

        request = self.factory.get('/charts', data, **self.extra)
        response = view(request, pk=merged_dataset['id'], format='html')
        self.assertEqual(response.status_code, 200)
        self.assertNotEqual(response.get('Cache-Control'), None)
        self.assertEqual(response.data['field_type'], 'select one')
        self.assertEqual(response.data['field_name'], 'fruit')
        self.assertEqual(response.data['data_type'], 'categorized')
        self.assertEqual(response.data['data'][0]['fruit'], 'Mango')
        self.assertEqual(response.data['data'][1]['fruit'], 'Orange')
Ejemplo n.º 8
0
    def test_merged_dataset_charts(self):
        """Test /charts endpoint for a merged dataset works"""

        merged_dataset = self._create_merged_dataset()
        merged_xform = MergedXForm.objects.get(pk=merged_dataset['id'])
        _make_submissions_merged_datasets(merged_xform)

        data = {'field_name': 'fruit'}
        view = ChartsViewSet.as_view({'get': 'retrieve'})

        request = self.factory.get('/charts', data, **self.extra)
        response = view(request, pk=merged_dataset['id'], format='html')
        self.assertEqual(response.status_code, 200)
        self.assertNotEqual(response.get('Cache-Control'), None)
        self.assertEqual(response.data['field_type'], 'select one')
        self.assertEqual(response.data['field_name'], 'fruit')
        self.assertEqual(response.data['data_type'], 'categorized')
        self.assertEqual(response.data['data'][0]['fruit'], 'Mango')
        self.assertEqual(response.data['data'][1]['fruit'], 'Orange')
Ejemplo n.º 9
0
    def test_chart_list_with_xform_in_delete_async(self):
        self.view = ChartsViewSet.as_view({
            'get': 'list'
        })
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertNotEqual(response.get('Cache-Control'), None)
        self.assertEqual(response.status_code, 200)
        data = {'id': self.xform.pk, 'id_string': self.xform.id_string,
                'url': 'http://testserver/api/v1/charts/%s' % self.xform.pk}
        self.assertEqual(response.data, [data])

        self.xform.deleted_at = timezone.now()
        self.xform.save()
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, [])
Ejemplo n.º 10
0
    def test_chart_list_with_xform_in_delete_async(self):
        self.view = ChartsViewSet.as_view({'get': 'list'})
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertNotEqual(response.get('Cache-Control'), None)
        self.assertEqual(response.status_code, 200)
        data = {
            'id': self.xform.pk,
            'id_string': self.xform.id_string,
            'url': 'http://testserver/api/v1/charts/%s' % self.xform.pk
        }
        self.assertEqual(response.data, [data])

        self.xform.deleted_at = timezone.now()
        self.xform.save()
        request = self.factory.get('/charts')
        force_authenticate(request, user=self.user)
        response = self.view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, [])