Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions murakami/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
SSH_TIMEOUT = 5
HTTP_PORT = 80
TESTS_PER_DAY = 4
RUNNER_DELAY = 0
EXPORT_PATH = "/var/cache/murakami"
DYNAMIC_FILE = "/var/lib/murakami/config.json"
CONFIG_FILES = [
Expand Down
18 changes: 13 additions & 5 deletions murakami/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import datetime
import logging
import random
import pkg_resources
from importlib.metadata import entry_points, packages_distributions

from apscheduler.schedulers.tornado import TornadoScheduler
from apscheduler.triggers.base import BaseTrigger
Expand Down Expand Up @@ -102,12 +102,21 @@ def __init__(
self._config = config

def _call_runners(self):
for r in self._runners.values():
runners = list(self._runners.values())
random.shuffle(runners)
sequence = [r.title for r in runners]
_logger.info("Running tests in sequence: %s", sequence)
for r in runners:
_logger.info("Running test: %s", r.title)
try:
r.start_test()
except Exception as exc:
_logger.error("Failed to run test %s: %s", r.title, str(exc))
delay = int(self._config.get("runner_delay", defaults.RUNNER_DELAY))
if delay > 0:
import time
_logger.info("Waiting %s seconds before next test.", delay)
time.sleep(delay)

def _call_exporters(self, test_name="", data="", timestamp=None):
for e in self._exporters.values():
Expand All @@ -123,7 +132,7 @@ def _load_runners(self):
immediate=self._immediate)

# Load test runners
for entry_point in pkg_resources.iter_entry_points("murakami.runners"):
for entry_point in entry_points(group="murakami.runners"):
logging.debug("Loading test runner %s", entry_point.name)
if "tests" not in self._config:
self._config["tests"] = {}
Expand Down Expand Up @@ -161,8 +170,7 @@ def _load_exporters(self):
self._exporters = {}
# Check if exporters are enabled and load them.
if "exporters" in self._config:
exporters = pkg_resources.get_entry_map("murakami",
group="murakami.exporters")
exporters = {ep.name: ep for ep in entry_points(group="murakami.exporters")}
for name, entry in self._config["exporters"].items():
logging.debug("Loading exporter %s", name)
enabled = True
Expand Down