From 218273f4284ecf2d80def30ae74d92bc99b974b7 Mon Sep 17 00:00:00 2001
From: drebs <drebs@leap.se>
Date: Tue, 4 Apr 2017 12:18:25 +0200
Subject: [PATCH] [feat] add the host hostname to benchmark machine info

---
 testing/tests/benchmarks/conftest.py |  2 +-
 testing/tests/conftest.py            | 20 ++++++++++++++++++++
 testing/tox.ini                      |  3 ++-
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/testing/tests/benchmarks/conftest.py b/testing/tests/benchmarks/conftest.py
index 1b99d96e..bec5d7ab 100644
--- a/testing/tests/benchmarks/conftest.py
+++ b/testing/tests/benchmarks/conftest.py
@@ -1,6 +1,6 @@
+import base64
 import pytest
 import random
-import base64
 
 from twisted.internet import threads, reactor
 
diff --git a/testing/tests/conftest.py b/testing/tests/conftest.py
index 589cb7de..2459307a 100644
--- a/testing/tests/conftest.py
+++ b/testing/tests/conftest.py
@@ -3,6 +3,8 @@ import os
 import pytest
 import requests
 import signal
+import socket
+import sys
 import time
 
 from hashlib import sha512
@@ -215,3 +217,21 @@ def soledad_client(tmpdir, soledad_server, remote_db, soledad_dbs, request):
         request.addfinalizer(soledad_client.close)
         return soledad_client
     return create
+
+
+#
+# pytest-benchmark customizations
+#
+
+# avoid hooking if this is not a benchmarking environment
+if 'pytest_benchmark' in sys.modules:
+
+    def pytest_benchmark_update_machine_info(config, machine_info):
+        """
+        Add the host's hostname information to machine_info.
+
+        Get the value from the HOST_HOSTNAME environment variable if it is set,
+        or from the actual system's hostname otherwise.
+        """
+        hostname = os.environ.get('HOST_HOSTNAME', socket.gethostname())
+        machine_info['host'] = hostname
diff --git a/testing/tox.ini b/testing/tox.ini
index 0e4b2683..2acbf4fb 100644
--- a/testing/tox.ini
+++ b/testing/tox.ini
@@ -64,10 +64,11 @@ install_command = pip3 install {opts} {packages}
 deps =
     {[testenv]deps}
     #pytest-benchmark>=3.1.0a2
-    git+https://github.com/drebs/pytest-benchmark.git@use-netrc-file
+    git+https://github.com/drebs/pytest-benchmark.git@fix-update-machine-info-hook-spec
     elasticsearch
     certifi
 commands = py.test --benchmark-only {posargs}
+passenv = HOST_HOSTNAME
 
 [testenv:code-check]
 changedir = ..
-- 
GitLab