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)
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'))
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)
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, [])
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')
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, [])
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, [])