コード例 #1
0
ファイル: testing_api.py プロジェクト: Hitatm/echo-sense
    def testAnalysisAPIs(self):
        self.analysis = Analysis.Get(self.e, "ROLLUP", get_or_insert=True)
        self.analysis.put()

        # Test update
        params = self.__commonParams()
        params.update({
            'akn': 'ROLLUP',
            'cols': 'TOTAL,MINIMUM',
            'TOTAL': 10,
            'MINIMUM': 2.5
        })
        result = self.post_json("/api/analysis", params)
        self.assertTrue(result['success'])

        # Test batch update
        data = {
            'ROLLUP1': {
                'TOTAL': 4,
                'MINIMUM': 0
            },
            'ROLLUP2': {
                'TOTAL': -4,
                'MINIMUM': 10
            }
        }
        params = self.__commonParams()
        params.update({'data': json.dumps(data)})
        result = self.post_json("/api/analysis/multi", params)
        self.assertTrue(result['success'])

        # Test batch update (to confirm other values not overwritten)
        data = {'ROLLUP1': {'NEW': 'hello'}}
        params = self.__commonParams()
        params.update({'data': json.dumps(data)})
        result = self.post_json("/api/analysis/multi", params)
        self.assertTrue(result['success'])
        # Confirm update occurred preserving other values
        rollup1 = Analysis.get_by_key_name('ROLLUP1', parent=self.e)
        self.assertEqual(rollup1.columnValue('NEW'), 'hello')
        self.assertEqual(rollup1.columnValue('TOTAL'), 4)

        rollup1 = Analysis.get_by_key_name('ROLLUP1', parent=self.e)
        rollup2 = Analysis.get_by_key_name('ROLLUP2', parent=self.e)
        self.assertEqual(rollup1.columnValue('TOTAL'), 4)
        self.assertEqual(rollup2.columnValue('TOTAL'), -4)

        # Create second record
        params.update({
            'akn': 'TODAY',
            'cols': 'TOTAL,MINIMUM',
            'TOTAL': 1,
            'MINIMUM': 0
        })
        result = self.post_json("/api/analysis", params)
        self.assertTrue(result['success'])

        # Test detail
        params = self.__commonParams()
        params['with_props'] = 1
        result = self.get_json("/api/analysis/ROLLUP", params)
        self.assertTrue(result['success'])
        self.assertEqual(result['data']['analysis']['columns']['TOTAL'], '10')
        self.assertEqual(result['data']['analysis']['columns']['MINIMUM'],
                         '2.5')

        # Test detail multi
        params = self.__commonParams()
        params['with_props'] = 1
        result = self.get_json("/api/analysis/multi/ROLLUP,TODAY", params)
        self.assertTrue(result['success'])
        self.assertEqual(type(result['data']['analyses']['ROLLUP']), dict)
        self.assertEqual(type(result['data']['analyses']['TODAY']), dict)