def test_one_tuple(self): test = to_data({ "data": [{"a": 1}, {"a": 2}], "query": {"from": TEST_TABLE}, # "expecting_list": [{"a": 1}, {"a": 2}] }) self.utils.fill_container(test) # FILL AND MAKE DUMMY QUERY query = value2json({"tuple": { "from": test.query['from'], "where": {"eq": {"a": 1}}, "format": "list", "meta": {"testing": True} }}).encode('utf8') # SEND QUERY response = self.utils.try_till_response(self.utils.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(response.all_content.decode('utf8')) self.assertEqual(result, { "data": [ {"data": [{"a": 1}]}, ] })
def test_branch_count(self): if self.not_real_service(): return test = wrap({"query": { "from": { "type": "elasticsearch", "settings": { "host": ES_CLUSTER_LOCATION, "index": "unittest", "type": "test_result" } }, "select": [ {"aggregate": "count"}, ], "edges": [ "build.branch" ], "where": {"or": [ {"missing": "build.id"} # {"gte": {"timestamp": Date.floor(Date.now() - (Duration.DAY * 7), Duration.DAY).milli / 1000}} ]}, "format": "table" }}) query = convert.unicode2utf8(convert.value2json(test.query)) # EXECUTE QUERY with Timer("query"): response = http.get(self.service_url, data=query) if response.status_code != 200: error(response) result = convert.json2value(convert.utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_multiple_agg_on_same_field(self): if self.not_real_service(): return test = wrap({ "query": { "from": { "type": "elasticsearch", "settings": { "host": ES_CLUSTER_LOCATION, "index": "unittest", "type": "test_result" } }, "select": [{ "name": "max_bytes", "value": "run.stats.bytes", "aggregate": "max" }, { "name": "count", "value": "run.stats.bytes", "aggregate": "count" }] } }) query = unicode2utf8(convert.value2json(test.query)) # EXECUTE QUERY with Timer("query"): response = http.get(self.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_timing(self): if self.not_real_service(): return test = wrap({ "query": { "from": { "type": "elasticsearch", "settings": { "host": ES_CLUSTER_LOCATION, "index": "unittest", "type": "test_result" } }, "select": [{ "name": "count", "value": "run.duration", "aggregate": "count" }, { "name": "total", "value": "run.duration", "aggregate": "sum" }], "edges": [{ "name": "chunk", "value": ["run.suite", "run.chunk"] }, "result.ok"], "where": { "and": [{ "lt": { "timestamp": Date.floor(Date.now()).milli / 1000 } }, { "gte": { "timestamp": Date.floor(Date.now() - (Duration.DAY * 7), Duration.DAY).milli / 1000 } }] }, "format": "cube", "samples": { "limit": 30 } } }) query = unicode2utf8(convert.value2json(test.query)) # EXECUTE QUERY with Timer("query"): response = http.get(self.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_simple_query(self): if self.not_real_service(): return query = convert.unicode2utf8(convert.value2json({"from": "unittest"})) # EXECUTE QUERY with Timer("query"): response = http.get(self.service_url, data=query) if response.status_code != 200: error(response) result = convert.json2value(convert.utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_simple_query(self): if self.not_real_service(): return query = value2json({"from": "unittest"}).encode('utf8') # EXECUTE QUERY with Timer("query"): response = http.get(self.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(response.all_content.decode('utf8')) Log.note("result\n{{result|indent}}", {"result": result})
def test_zero_tuple(self): test = to_data({ "data": [{"a": 1}, {"a": 2}], "query": {"from": TEST_TABLE}, # "expecting_list": [{"a": 1}, {"a": 2}] }) self.utils.fill_container(test) # FILL AND MAKE DUMMY QUERY body = value2json({"tuple": {}}).encode('utf8') # SEND QUERY response = self.utils.try_till_response(self.utils.testing.query, data=body) if response.status_code != 200: error(response) result = json2value(response.all_content.decode('utf8')) self.assertEqual(result, {"data": []})
def test_longest_running_tests(self): test = wrap({ "query": { "sort": { "sort": -1, "field": "avg" }, "from": { "from": "unittest", "where": { "and": [{ "gt": { "build.date": "1439337600" } }] }, "groupby": [ "build.platform", "build.type", "run.suite", "result.test" ], "select": [{ "aggregate": "avg", "name": "avg", "value": "result.duration" }], "format": "table", "limit": 100 }, "limit": 100, "format": "list" } }) query = unicode2utf8(convert.value2json(test.query)) # EXECUTE QUERY with Timer("query"): response = http.get(self.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_failures_by_directory(self): if self.not_real_service(): return test = wrap({"query": { "from": { "type": "elasticsearch", "settings": { "host": ES_CLUSTER_LOCATION, "index": "unittest", "type": "test_result" } }, "select": [ { "aggregate": "count" } ], "edges": [ "result.test", "result.ok" ], "where": { "prefix": { "result.test": "/" } }, "format": "table" }}) query = convert.unicode2utf8(convert.value2json(test.query)) # EXECUTE QUERY with Timer("query"): response = http.get(self.service_url, data=query) if response.status_code != 200: error(response) result = convert.json2value(convert.utf82unicode(response.all_content)) Log.note("result\n{{result|indent}}", {"result": result})
def test_chunk_timing(self): if self.not_real_service(): return test = wrap({"query": { "from": { "type": "elasticsearch", "settings": { "host": ES_CLUSTER_LOCATION, "index": "unittest", "type": "test_result" } }, "select": {"value": "run.stats.duration", "aggregate": "average"}, "edges": [ {"name": "chunk", "value": ["run.suite", "run.chunk"]} ], "where": {"and": [ {"term": {"etl.id": 0}}, {"gte": {"timestamp": Date.floor(Date.now() - (Duration.DAY * 7), Duration.DAY).milli / 1000}} ]}, "format": "cube", "samples": { "limit": 30 } }}) query = value2json(test.query).encode('utf8') # EXECUTE QUERY with Timer("query"): response = self.utils.try_till_response(self.testing.query, data=query) if response.status_code != 200: error(response) result = json2value(response.all_content.decode('utf8')) Log.note("result\n{{result|indent}}", {"result": result})