def test_submit_InvalidQuery(self, dr): dr.return_value = 'sqlite:///' self.request.matchdict['script'] = 'plot' self.request.json_body = 1234 task = Mock(PythonTask) task.formfields2taskargs.side_effect = Invalid('Invalid query') views = Views(self.request) views.celery.tasks = {'plot': task} result = views.submit() eresult = {'success': False, 'msg': 'Invalid query'} self.assertEqual(result, eresult)
def test_submit(self, dr): dr.return_value = 'sqlite:///' self.config.add_route('result', '/{taskid}') self.request.matchdict['script'] = 'plot' self.request.json_body = 1234 task = Mock(PythonTask) task_result = Mock(AsyncResult) task_result.id = 'b3c84d96-4dc7-4532-a864-3573202f202a' task.apply_async.return_value = task_result views = Views(self.request) views.celery.tasks = {'plot': task} result = views.submit() eresult = {'success': True, 'result': '/b3c84d96-4dc7-4532-a864-3573202f202a', } self.assertEqual(result, eresult) task.formfields2taskargs.assert_called_with(1234, 'sqlite:///')
def test_submit_InvalidQueryField(self, dr): dr.return_value = 'sqlite:///' self.request.matchdict['script'] = 'kmzgen' self.request.json_body = {'shape': 'triangle'} task = Mock(PythonTask) import colander shape = colander.SchemaNode(colander.String(), name='shape', validator=colander.OneOf(['circle', 'iarrow', 'tarrow'])) exception = colander.Invalid(shape, '"triangle" is not one of circle, iarrow, tarrow') task.formfields2taskargs.side_effect = exception views = Views(self.request) views.celery.tasks = {'kmzgen': task} result = views.submit() eresult = {'success': False, 'errors': {'shape': '"triangle" is not one of circle, iarrow, tarrow'}, } self.assertEqual(result, eresult)