示例#1
0
 def test_all_stats_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'list'})
     request = self.factory.get('/', **self.extra)
     response = view(request)
     self.assertEqual(response.status_code, 200)
     formid = self.xform.pk
     data = {
         u'contributions':
         'http://testserver/api/v1/stats/bob/%s' % formid
     }
     self.assertDictContainsSubset(data, response.data)
     response = view(request, owner='bob', formid=formid)
     data = {}
     data['age'] = {
         'mean': 28.17,
         'median': 28.5,
         'mode': 24,
         'max': 34,
         'min': 24,
         'range': 10
     }
     request = self.factory.get('/?field=age', **self.extra)
     age_response = view(request, owner='bob', formid=formid)
     self.assertEqual(data, age_response.data)
     data['amount'] = {
         'mean': 1455,
         'median': 1100.0,
         'mode': 430,
         'max': 3200,
         'min': 430,
         'range': 2770
     }
     self.assertDictContainsSubset(data, response.data)
示例#2
0
 def test_all_stats_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'list'})
     request = self.factory.get('/', **self.extra)
     response = view(request)
     self.assertEqual(response.status_code, 200)
     formid = self.xform.pk
     data = {
         u'contributions': 'http://testserver/api/v1/stats/bob/%s' % formid
     }
     self.assertDictContainsSubset(data, response.data)
     response = view(request, owner='bob', formid=formid)
     data = {}
     data['age'] = {
         'mean': 28.17,
         'median': 28.5,
         'mode': 24,
         'max': 34,
         'min': 24,
         'range': 10
     }
     request = self.factory.get('/?field=age', **self.extra)
     age_response = view(request, owner='bob', formid=formid)
     self.assertEqual(data, age_response.data)
     data['amount'] = {
         'mean': 1455,
         'median': 1100.0,
         'mode': 430,
         'max': 3200,
         'min': 430,
         'range': 2770
     }
     self.assertDictContainsSubset(data, response.data)
示例#3
0
 def test_bad_field(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=median&field=INVALID',
                                **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     self.assertEqual(response.status_code, 400)
示例#4
0
 def test_mode_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=mode', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': 24, u'amount': 430.0}
     self.assertDictContainsSubset(data, response.data)
 def test_bad_field(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=median&field=INVALID',
                                **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     self.assertEqual(response.status_code, 400)
示例#6
0
    def test_wrong_stat_function_api(self):
        self._contributions_form_submissions()
        view = StatsViewSet.as_view({'get': 'retrieve'})
        request = self.factory.get('/?method=modes', **self.extra)
        formid = self.xform.pk
        response = view(request, pk=formid)

        self.assertEquals(response.status_code, 200)
示例#7
0
 def test_mean_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=mean', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': 28.17, u'amount': 1455.0}
     self.assertDictContainsSubset(data, response.data)
示例#8
0
 def test_mean_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'list'})
     request = self.factory.get('/?method=mean', **self.extra)
     formid = self.xform.pk
     response = view(request, owner='bob', formid=formid)
     data = {u'age': 28.17, u'amount': 1455.0}
     self.assertDictContainsSubset(data, response.data)
示例#9
0
 def test_mode_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'list'})
     request = self.factory.get('/?method=mode', **self.extra)
     formid = self.xform.pk
     response = view(request, owner='bob', formid=formid)
     data = {u'age': 24, u'amount': 430.0}
     self.assertDictContainsSubset(data, response.data)
示例#10
0
 def test_median_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=median', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': 28.5, u'amount': 1100.0}
     self.assertNotEqual(response.get('Last-Modified'), None)
     self.assertDictContainsSubset(data, response.data)
示例#11
0
 def test_mean_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=mean', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': 28.17, u'amount': 1455.0}
     self.assertNotEqual(response.get('Last-Modified'), None)
     self.assertDictContainsSubset(data, response.data)
示例#12
0
 def test_range_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=range', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': {u'range': 10, u'max': 34, u'min': 24},
             u'amount': {u'range': 2770, u'max': 3200, u'min': 430}}
     self.assertDictContainsSubset(data, response.data)
 def test_mode_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=mode', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': 24, u'amount': 430.0}
     self.assertNotEqual(response.get('Cache-Control'), None)
     self.assertDictContainsSubset(data, response.data)
示例#14
0
    def test_wrong_stat_function_api(self):
        self._contributions_form_submissions()
        view = StatsViewSet.as_view({'get': 'retrieve'})
        request = self.factory.get('/?method=modes', **self.extra)
        formid = self.xform.pk
        response = view(request, pk=formid)

        self.assertNotEqual(response.get('Last-Modified'), None)
        self.assertEquals(response.status_code, 200)
示例#15
0
 def test_range_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'list'})
     request = self.factory.get('/?method=range', **self.extra)
     formid = self.xform.pk
     response = view(request, owner='bob', formid=formid)
     data = {u'age': {u'range': 10, u'max': 34, u'min': 24},
             u'amount': {u'range': 2770, u'max': 3200, u'min': 430}}
     self.assertDictContainsSubset(data, response.data)
示例#16
0
 def test_range_api(self):
     self._contributions_form_submissions()
     view = StatsViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/?method=range', **self.extra)
     formid = self.xform.pk
     response = view(request, pk=formid)
     data = {u'age': {u'range': 10, u'max': 34, u'min': 24},
             u'amount': {u'range': 2770, u'max': 3200, u'min': 430}}
     self.assertNotEqual(response.get('Last-Modified'), None)
     self.assertDictContainsSubset(data, response.data)
    def test_all_stats_api(self):
        self._contributions_form_submissions()
        view = StatsViewSet.as_view({'get': 'list'})
        request = self.factory.get('/', **self.extra)
        response = view(request)
        self.assertNotEqual(response.get('Cache-Control'), None)
        self.assertEqual(response.status_code, 200)
        formid = self.xform.pk
        data = [{
            u'id': formid,
            u'id_string': u'contributions',
            u'url': u'http://testserver/api/v1/stats/%s' % formid
        }]
        self.assertEqual(data, response.data)

        view = StatsViewSet.as_view({'get': 'retrieve'})
        response = view(request, pk=formid)
        data = {}
        data['age'] = {
            'mean': 28.17,
            'median': 28.5,
            'mode': 24,
            'max': 34,
            'min': 24,
            'range': 10
        }
        request = self.factory.get('/?field=age', **self.extra)
        age_response = view(request, pk=formid)
        self.assertEqual(data, age_response.data)
        data['amount'] = {
            'mean': 1455,
            'median': 1100.0,
            'mode': 430,
            'max': 3200,
            'min': 430,
            'range': 2770
        }
        self.assertDictContainsSubset(data, response.data)
示例#18
0
    def test_all_stats_api(self):
        self._contributions_form_submissions()
        view = StatsViewSet.as_view({'get': 'list'})
        request = self.factory.get('/', **self.extra)
        response = view(request)
        self.assertNotEqual(response.get('Last-Modified'), None)
        self.assertEqual(response.status_code, 200)
        formid = self.xform.pk
        data = [{
            u'id': formid,
            u'id_string': u'contributions',
            u'url': u'http://testserver/api/v1/stats/%s' % formid
        }]
        self.assertEqual(data, response.data)

        view = StatsViewSet.as_view({'get': 'retrieve'})
        response = view(request, pk=formid)
        data = {}
        data['age'] = {
            'mean': 28.17,
            'median': 28.5,
            'mode': 24,
            'max': 34,
            'min': 24,
            'range': 10
        }
        request = self.factory.get('/?field=age', **self.extra)
        age_response = view(request, pk=formid)
        self.assertEqual(data, age_response.data)
        data['amount'] = {
            'mean': 1455,
            'median': 1100.0,
            'mode': 430,
            'max': 3200,
            'min': 430,
            'range': 2770
        }
        self.assertDictContainsSubset(data, response.data)