summaryrefslogtreecommitdiff
path: root/tests/responsiveness/elastic.py
diff options
context:
space:
mode:
authordrebs <drebs@riseup.net>2017-09-17 12:08:25 -0300
committerdrebs <drebs@riseup.net>2017-09-17 15:50:55 -0300
commitcfff46ff9becdbe5cf48816870e625ed253ecc57 (patch)
tree8d239e4499f559d86ed17ea3632008303b25d485 /tests/responsiveness/elastic.py
parentf29abe28bd778838626d12fcabe3980a8ce4fa8c (diff)
[refactor] move tests to root of repository
Tests entrypoint was in a testing/ subfolder in the root of the repository. This was made mainly because we had some common files for tests and we didn't want to ship them (files in testing/test_soledad, which is itself a python package. This sometimes causes errors when loading tests (it seems setuptools is confused with having one python package in a subdirectory of another). This commit moves the tests entrypoint to the root of the repository. Closes: #8952
Diffstat (limited to 'tests/responsiveness/elastic.py')
-rw-r--r--tests/responsiveness/elastic.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/responsiveness/elastic.py b/tests/responsiveness/elastic.py
new file mode 100644
index 00000000..fed1506b
--- /dev/null
+++ b/tests/responsiveness/elastic.py
@@ -0,0 +1,47 @@
+import datetime
+import elasticsearch
+
+from pytest_benchmark.plugin import pytest_benchmark_generate_machine_info
+from pytest_benchmark.utils import get_commit_info, get_tag, get_machine_id
+from pytest_benchmark.storage.elasticsearch import BenchmarkJSONSerializer
+
+
+def post(seconds_blocked, request,):
+ body, doc_id = get_doc(seconds_blocked, request)
+ url = request.config.getoption("elasticsearch_url")
+ if url:
+ es = elasticsearch.Elasticsearch(
+ hosts=[url],
+ serializer=BenchmarkJSONSerializer())
+ es.index(
+ index='responsiveness',
+ doc_type='responsiveness',
+ id=doc_id,
+ body=body)
+ else:
+ print body
+
+
+def get_doc(seconds_blocked, request):
+ fullname = request.node._nodeid
+ name = request.node.name
+ group = None
+ marker = request.node.get_marker("responsivness")
+ if marker:
+ group = marker.kwargs.get("group")
+
+ doc = {
+ "datetime": datetime.datetime.utcnow().isoformat(),
+ "commit_info": get_commit_info(),
+ "fullname": fullname,
+ "name": name,
+ "group": group,
+ "machine_info": pytest_benchmark_generate_machine_info(),
+ }
+
+ # generate a doc id like the one used by pytest-benchmark
+ machine_id = get_machine_id()
+ tag = get_tag()
+ doc_id = machine_id + "_" + tag + "_" + fullname
+
+ return doc, doc_id