diff --git a/monitoring/Makefile b/monitoring/Makefile index ca81bd495f..94eee51ab1 100644 --- a/monitoring/Makefile +++ b/monitoring/Makefile @@ -10,6 +10,7 @@ format: unit-test: cd uss_qualifier && make unit_test cd monitorlib && make unit_test + cd benchmarker && make unit_test image: ../uv.lock ../pyproject.toml $(shell find . -type f ! -path "*/output/*" ! -path "*/.*" ! -path "*/__pycache__/*" ! -name image ! -name image-dev ! -name "*.pyc") $(shell find ../interfaces -type f) ./build.sh diff --git a/monitoring/benchmarker/Makefile b/monitoring/benchmarker/Makefile new file mode 100644 index 0000000000..fe42ad0f5f --- /dev/null +++ b/monitoring/benchmarker/Makefile @@ -0,0 +1,3 @@ +.PHONY: unit_test +unit_test: + ./scripts/run_unit_tests.sh diff --git a/monitoring/benchmarker/engine/loads/user_search/test_user_search.py b/monitoring/benchmarker/engine/loads/user_search/test_user_search.py index 69d26fb565..e2c4bd586d 100644 --- a/monitoring/benchmarker/engine/loads/user_search/test_user_search.py +++ b/monitoring/benchmarker/engine/loads/user_search/test_user_search.py @@ -412,7 +412,7 @@ def fake_create_vu( with ( patch( - "monitoring.benchmarker.engine.loads.user_search.user_search.create_virtual_user", + "monitoring.benchmarker.engine.loads.step_execution.create_virtual_user", side_effect=fake_create_vu, ), ThreadPoolExecutor(max_workers=4) as executor, diff --git a/monitoring/benchmarker/scripts/in_container/run_unit_tests.sh b/monitoring/benchmarker/scripts/in_container/run_unit_tests.sh new file mode 100755 index 0000000000..4165994b17 --- /dev/null +++ b/monitoring/benchmarker/scripts/in_container/run_unit_tests.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -eo pipefail + +# This script is intended to be called from within a Docker container running +# the interuss/monitoring-dev image. In that context, this script runs the +# benchmarker unit tests. + +# Ensure benchmarker is the working directory +OS=$(uname) +if [[ $OS == "Darwin" ]]; then + # OSX uses BSD readlink + BASEDIR="$(dirname "$0")" +else + BASEDIR=$(readlink -e "$(dirname "$0")") +fi +cd "${BASEDIR}/../.." || exit 1 + +uv run pytest diff --git a/monitoring/benchmarker/scripts/run_unit_tests.sh b/monitoring/benchmarker/scripts/run_unit_tests.sh new file mode 100755 index 0000000000..c37cae1c98 --- /dev/null +++ b/monitoring/benchmarker/scripts/run_unit_tests.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -eo pipefail +set -o xtrace + +# Find and change to repo root directory +OS=$(uname) +if [[ "$OS" == "Darwin" ]]; then + # OSX uses BSD readlink + BASEDIR="$(dirname "$0")" +else + BASEDIR=$(readlink -e "$(dirname "$0")") +fi +cd "${BASEDIR}/../../.." || exit 1 + +( +cd monitoring || exit 1 +make image-dev +) + +# shellcheck disable=SC2086 +docker run --name benchmarker_unit_test \ + --rm \ + -e MONITORING_GITHUB_ROOT=${MONITORING_GITHUB_ROOT:-} \ + -v "$(pwd):/app" \ + -v /var/run/docker.sock:/var/run/docker.sock \ + interuss/monitoring-dev \ + benchmarker/scripts/in_container/run_unit_tests.sh