def setUp(self): super(TestManagerStoreResults, self).setUp() self.data_source = data_source_factory.create() self.query = "SELECT 1" self.query_hash = gen_query_hash(self.query) self.runtime = 123 self.utcnow = datetime.datetime.utcnow() self.data = "data"
def test_post_result_list(self): data_source = data_source_factory.create() query_result = query_result_factory.create() query = query_factory.create() with app.test_client() as c, authenticated_user(c): rv = json_request( c.post, "/api/query_results", data={"data_source_id": data_source.id, "query": query.query} ) self.assertEquals(rv.status_code, 200)
def test_doesnt_update_queries_with_different_data_source(self): query1 = query_factory.create(query=self.query, data_source=self.data_source) query2 = query_factory.create(query=self.query, data_source=self.data_source) query3 = query_factory.create(query=self.query, data_source=data_source_factory.create()) query_result_id = data_manager.store_query_result(self.data_source.id, self.query, self.data, self.runtime, self.utcnow) self.assertEqual(models.Query.get_by_id(query1.id)._data['latest_query_data'], query_result_id) self.assertEqual(models.Query.get_by_id(query2.id)._data['latest_query_data'], query_result_id) self.assertNotEqual(models.Query.get_by_id(query3.id)._data['latest_query_data'], query_result_id)
def test_create_query(self): user = user_factory.create() data_source = data_source_factory.create() query_data = {"name": "Testing", "query": "SELECT 1", "schedule": "3600", "data_source_id": data_source.id} with app.test_client() as c, authenticated_user(c, user=user): rv = json_request(c.post, "/api/queries", data=query_data) self.assertEquals(rv.status_code, 200) self.assertDictContainsSubset(query_data, rv.json) self.assertEquals(rv.json["user"]["id"], user.id) self.assertIsNotNone(rv.json["api_key"]) self.assertIsNotNone(rv.json["query_hash"]) query = models.Query.get_by_id(rv.json["id"]) self.assertEquals(len(list(query.visualizations)), 1)
def test_create_query(self): user = user_factory.create() data_source = data_source_factory.create() query_data = { 'name': 'Testing', 'query': 'SELECT 1', 'schedule': "3600", 'data_source_id': data_source.id } with app.test_client() as c, authenticated_user(c, user=user): rv = json_request(c.post, '/api/queries', data=query_data) self.assertEquals(rv.status_code, 200) self.assertDictContainsSubset(query_data, rv.json) self.assertEquals(rv.json['user']['id'], user.id) self.assertIsNotNone(rv.json['api_key']) self.assertIsNotNone(rv.json['query_hash']) query = models.Query.get_by_id(rv.json['id']) self.assertEquals(len(list(query.visualizations)), 1)
def test_create_query(self): user = user_factory.create() data_source = data_source_factory.create() query_data = { 'name': 'Testing', 'query': 'SELECT 1', 'ttl': 3600, 'data_source_id': data_source.id } with app.test_client() as c, authenticated_user(c, user=user): rv = json_request(c.post, '/api/queries', data=query_data) self.assertEquals(rv.status_code, 200) self.assertDictContainsSubset(query_data, rv.json) self.assertEquals(rv.json['user']['id'], user.id) self.assertIsNotNone(rv.json['api_key']) self.assertIsNotNone(rv.json['query_hash']) query = models.Query.get_by_id(rv.json['id']) self.assertEquals(len(list(query.visualizations)), 1)
def test_doesnt_update_queries_with_different_data_source(self): query1 = query_factory.create(query=self.query, data_source=self.data_source) query2 = query_factory.create(query=self.query, data_source=self.data_source) query3 = query_factory.create(query=self.query, data_source=data_source_factory.create()) query_result_id = data_manager.store_query_result( self.data_source.id, self.query, self.data, self.runtime, self.utcnow) self.assertEqual( models.Query.get_by_id(query1.id)._data['latest_query_data'], query_result_id) self.assertEqual( models.Query.get_by_id(query2.id)._data['latest_query_data'], query_result_id) self.assertNotEqual( models.Query.get_by_id(query3.id)._data['latest_query_data'], query_result_id)