42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from scripts.benchmark_import import UnsafeBenchmarkEnvironment, validate_benchmark_identity
|
|
|
|
|
|
def _database(name: str, host: str = "127.0.0.1") -> dict[str, str]:
|
|
return {
|
|
"ENGINE": "django.db.backends.postgresql",
|
|
"NAME": name,
|
|
"HOST": host,
|
|
}
|
|
|
|
|
|
def test_benchmark_identity_accepts_only_isolated_postgres() -> None:
|
|
validate_benchmark_identity(
|
|
_database("vacatureradar_bench_release_0314"), "https://benchmark.invalid"
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("database", "public_url"),
|
|
[
|
|
(_database("vacatureradar"), "https://benchmark.invalid"),
|
|
(
|
|
_database("vacatureradar_bench_release", "database.internal"),
|
|
"https://benchmark.invalid",
|
|
),
|
|
(_database("vacatureradar_bench_release"), "https://vacatureradar.itworx.tech"),
|
|
(
|
|
{"ENGINE": "django.db.backends.sqlite3", "NAME": Path("bench.sqlite3"), "HOST": ""},
|
|
"https://benchmark.invalid",
|
|
),
|
|
],
|
|
)
|
|
def test_benchmark_identity_rejects_unsafe_targets(
|
|
database: dict[str, object], public_url: str
|
|
) -> None:
|
|
with pytest.raises(UnsafeBenchmarkEnvironment):
|
|
validate_benchmark_identity(database, public_url)
|