Introduce a fake_restapi test fixture

This fixture itself uses the 'use_old_replica_state' fixture, so that
it's no longer needed to use it explicitly in test functions.
This commit is contained in:
Denis Laxalde 2023-09-28 10:57:24 +02:00
parent c3cdb8cdd4
commit bc2d2917c3
15 changed files with 124 additions and 274 deletions

View file

@ -1,4 +1,10 @@
from typing import Any
from functools import partial
from typing import Any, Callable
import pytest
from pytest_mock import MockerFixture
from .tools import my_mock
def pytest_addoption(parser: Any) -> None:
@ -13,3 +19,10 @@ def pytest_generate_tests(metafunc: Any) -> None:
metafunc.parametrize(
"use_old_replica_state", [metafunc.config.getoption("use_old_replica_state")]
)
@pytest.fixture
def fake_restapi(
mocker: MockerFixture, use_old_replica_state: bool
) -> Callable[..., Any]:
return partial(my_mock, mocker, use_old_replica_state=use_old_replica_state)

View file

@ -1,29 +1,22 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_api_status_code_200(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_api_status_code_200(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_pending_restart_ok")
fake_restapi("node_is_pending_restart_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_pending_restart"]
)
assert result.exit_code == 0
def test_api_status_code_404(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_api_status_code_404(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "Fake test", status=404)
fake_restapi("Fake test", status=404)
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_pending_restart"]
)

View file

@ -1,18 +1,15 @@
import nagiosplugin
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import here, my_mock
from .tools import here
def test_cluster_config_has_changed_ok_with_hash(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_config_has_changed_ok_with_hash(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_config_has_changed")
fake_restapi("cluster_config_has_changed")
result = runner.invoke(
main,
[
@ -30,15 +27,13 @@ def test_cluster_config_has_changed_ok_with_hash(
)
def test_cluster_config_has_changed_ok_with_state_file(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_config_has_changed_ok_with_state_file(fake_restapi) -> None:
runner = CliRunner()
with open(here / "cluster_config_has_changed.state_file", "w") as f:
f.write('{"hash": "96b12d82571473d13e890b893734e731"}')
my_mock(mocker, "cluster_config_has_changed")
fake_restapi("cluster_config_has_changed")
result = runner.invoke(
main,
[
@ -56,12 +51,10 @@ def test_cluster_config_has_changed_ok_with_state_file(
)
def test_cluster_config_has_changed_ko_with_hash(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_config_has_changed_ko_with_hash(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_config_has_changed")
fake_restapi("cluster_config_has_changed")
result = runner.invoke(
main,
[
@ -79,16 +72,13 @@ def test_cluster_config_has_changed_ko_with_hash(
)
def test_cluster_config_has_changed_ko_with_state_file_and_save(
mocker: MockerFixture,
use_old_replica_state: bool,
) -> None:
def test_cluster_config_has_changed_ko_with_state_file_and_save(fake_restapi) -> None:
runner = CliRunner()
with open(here / "cluster_config_has_changed.state_file", "w") as f:
f.write('{"hash": "96b12d82571473d13e890b8937ffffff"}')
my_mock(mocker, "cluster_config_has_changed")
fake_restapi("cluster_config_has_changed")
# test without saving the new hash
result = runner.invoke(
main,
@ -139,13 +129,11 @@ def test_cluster_config_has_changed_ko_with_state_file_and_save(
assert new_config_hash == "96b12d82571473d13e890b893734e731"
def test_cluster_config_has_changed_params(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_config_has_changed_params(fake_restapi) -> None:
# This one is placed last because it seems like the exceptions are not flushed from stderr for the next tests.
runner = CliRunner()
my_mock(mocker, "cluster_config_has_changed")
fake_restapi("cluster_config_has_changed")
result = runner.invoke(
main,
[

View file

@ -1,17 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_cluster_has_leader_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_leader_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_leader_ok")
fake_restapi("cluster_has_leader_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_leader"]
)
@ -22,12 +17,10 @@ def test_cluster_has_leader_ok(
)
def test_cluster_has_leader_ok_standby_leader(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_leader_ok_standby_leader(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_leader_ok_standby_leader")
fake_restapi("cluster_has_leader_ok_standby_leader")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_leader"]
)
@ -38,12 +31,10 @@ def test_cluster_has_leader_ok_standby_leader(
)
def test_cluster_has_leader_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_leader_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_leader_ko")
fake_restapi("cluster_has_leader_ko")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_leader"]
)

View file

@ -1,20 +1,13 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
# TODO Lag threshold tests
def test_cluster_has_relica_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_relica_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_has_replica_ok", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_has_replica_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_replica"]
)
@ -25,14 +18,10 @@ def test_cluster_has_relica_ok(
)
def test_cluster_has_replica_ok_with_count_thresholds(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_replica_ok_with_count_thresholds(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_has_replica_ok", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_has_replica_ok")
result = runner.invoke(
main,
[
@ -52,14 +41,10 @@ def test_cluster_has_replica_ok_with_count_thresholds(
)
def test_cluster_has_replica_ok_with_sync_count_thresholds(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_replica_ok_with_sync_count_thresholds(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_has_replica_ok", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_has_replica_ok")
result = runner.invoke(
main,
[
@ -77,17 +62,10 @@ def test_cluster_has_replica_ok_with_sync_count_thresholds(
)
def test_cluster_has_replica_ok_with_count_thresholds_lag(
mocker: MockerFixture,
use_old_replica_state: bool,
) -> None:
def test_cluster_has_replica_ok_with_count_thresholds_lag(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_has_replica_ok_lag",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_has_replica_ok_lag")
result = runner.invoke(
main,
[
@ -109,14 +87,10 @@ def test_cluster_has_replica_ok_with_count_thresholds_lag(
)
def test_cluster_has_replica_ko_with_count_thresholds(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_replica_ko_with_count_thresholds(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_has_replica_ko", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_has_replica_ko")
result = runner.invoke(
main,
[
@ -136,14 +110,10 @@ def test_cluster_has_replica_ko_with_count_thresholds(
)
def test_cluster_has_replica_ko_with_sync_count_thresholds(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_replica_ko_with_sync_count_thresholds(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_has_replica_ko", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_has_replica_ko")
result = runner.invoke(
main,
[
@ -163,17 +133,10 @@ def test_cluster_has_replica_ko_with_sync_count_thresholds(
)
def test_cluster_has_replica_ko_with_count_thresholds_and_lag(
mocker: MockerFixture,
use_old_replica_state: bool,
) -> None:
def test_cluster_has_replica_ko_with_count_thresholds_and_lag(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_has_replica_ko_lag",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_has_replica_ko_lag")
result = runner.invoke(
main,
[

View file

@ -1,17 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_cluster_has_scheduled_action_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_scheduled_action_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_scheduled_action_ok")
fake_restapi("cluster_has_scheduled_action_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_scheduled_action"]
)
@ -22,12 +17,10 @@ def test_cluster_has_scheduled_action_ok(
)
def test_cluster_has_scheduled_action_ko_switchover(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_scheduled_action_ko_switchover(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_scheduled_action_ko_switchover")
fake_restapi("cluster_has_scheduled_action_ko_switchover")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_scheduled_action"]
)
@ -38,12 +31,10 @@ def test_cluster_has_scheduled_action_ko_switchover(
)
def test_cluster_has_scheduled_action_ko_restart(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_has_scheduled_action_ko_restart(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_has_scheduled_action_ko_restart")
fake_restapi("cluster_has_scheduled_action_ko_restart")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_has_scheduled_action"]
)

View file

@ -1,17 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_cluster_is_in_maintenance_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_is_in_maintenance_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_is_in_maintenance_ok")
fake_restapi("cluster_is_in_maintenance_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_is_in_maintenance"]
)
@ -22,12 +17,10 @@ def test_cluster_is_in_maintenance_ok(
)
def test_cluster_is_in_maintenance_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_is_in_maintenance_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_is_in_maintenance_ko")
fake_restapi("cluster_is_in_maintenance_ko")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_is_in_maintenance"]
)
@ -38,12 +31,10 @@ def test_cluster_is_in_maintenance_ko(
)
def test_cluster_is_in_maintenance_ok_pause_false(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_is_in_maintenance_ok_pause_false(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "cluster_is_in_maintenance_ok_pause_false")
fake_restapi("cluster_is_in_maintenance_ok_pause_false")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_is_in_maintenance"]
)

View file

@ -1,19 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_cluster_node_count_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_node_count_ok(fake_restapi, use_old_replica_state: bool) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_node_count_ok", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_node_count_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "cluster_node_count"]
)
@ -31,13 +24,11 @@ def test_cluster_node_count_ok(
def test_cluster_node_count_ok_with_thresholds(
mocker: MockerFixture, use_old_replica_state: bool
fake_restapi, use_old_replica_state: bool
) -> None:
runner = CliRunner()
my_mock(
mocker, "cluster_node_count_ok", use_old_replica_state=use_old_replica_state
)
fake_restapi("cluster_node_count_ok")
result = runner.invoke(
main,
[
@ -68,15 +59,11 @@ def test_cluster_node_count_ok_with_thresholds(
def test_cluster_node_count_healthy_warning(
mocker: MockerFixture, use_old_replica_state: bool
fake_restapi, use_old_replica_state: bool
) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_node_count_healthy_warning",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_node_count_healthy_warning")
result = runner.invoke(
main,
[
@ -102,16 +89,10 @@ def test_cluster_node_count_healthy_warning(
)
def test_cluster_node_count_healthy_critical(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_node_count_healthy_critical(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_node_count_healthy_critical",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_node_count_healthy_critical")
result = runner.invoke(
main,
[
@ -131,16 +112,10 @@ def test_cluster_node_count_healthy_critical(
)
def test_cluster_node_count_warning(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_node_count_warning(fake_restapi, use_old_replica_state: bool) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_node_count_warning",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_node_count_warning")
result = runner.invoke(
main,
[
@ -166,16 +141,10 @@ def test_cluster_node_count_warning(
)
def test_cluster_node_count_critical(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_cluster_node_count_critical(fake_restapi) -> None:
runner = CliRunner()
my_mock(
mocker,
"cluster_node_count_critical",
use_old_replica_state=use_old_replica_state,
)
fake_restapi("cluster_node_count_critical")
result = runner.invoke(
main,
[

View file

@ -1,15 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_is_alive_ok(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_alive_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, None)
fake_restapi(None)
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_alive"])
assert result.exit_code == 0
assert (
@ -18,10 +15,10 @@ def test_node_is_alive_ok(mocker: MockerFixture, use_old_replica_state: bool) ->
)
def test_node_is_alive_ko(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_alive_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, None, status=404)
fake_restapi(None, status=404)
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_alive"])
assert result.exit_code == 2
assert (

View file

@ -1,15 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_is_leader_ok(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_leader_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_leader_ok")
fake_restapi("node_is_leader_ok")
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_leader"])
assert result.exit_code == 0
assert (
@ -17,7 +14,7 @@ def test_node_is_leader_ok(mocker: MockerFixture, use_old_replica_state: bool) -
== "NODEISLEADER OK - This node is a leader node. | is_leader=1;;@0\n"
)
my_mock(mocker, "node_is_leader_ok_standby_leader")
fake_restapi("node_is_leader_ok_standby_leader")
result = runner.invoke(
main,
["-e", "https://10.20.199.3:8008", "node_is_leader", "--is-standby-leader"],
@ -30,10 +27,10 @@ def test_node_is_leader_ok(mocker: MockerFixture, use_old_replica_state: bool) -
)
def test_node_is_leader_ko(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_leader_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_leader_ko", status=503)
fake_restapi("node_is_leader_ko", status=503)
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_leader"])
assert result.exit_code == 2
assert (
@ -41,7 +38,7 @@ def test_node_is_leader_ko(mocker: MockerFixture, use_old_replica_state: bool) -
== "NODEISLEADER CRITICAL - This node is not a leader node. | is_leader=0;;@0\n"
)
my_mock(mocker, "node_is_leader_ko_standby_leader", status=503)
fake_restapi("node_is_leader_ko_standby_leader", status=503)
result = runner.invoke(
main,
["-e", "https://10.20.199.3:8008", "node_is_leader", "--is-standby-leader"],

View file

@ -1,17 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_is_pending_restart_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_pending_restart_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_pending_restart_ok")
fake_restapi("node_is_pending_restart_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_pending_restart"]
)
@ -22,12 +17,10 @@ def test_node_is_pending_restart_ok(
)
def test_node_is_pending_restart_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_pending_restart_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_pending_restart_ko")
fake_restapi("node_is_pending_restart_ko")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_pending_restart"]
)

View file

@ -1,15 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_is_primary_ok(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_primary_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_primary_ok")
fake_restapi("node_is_primary_ok")
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_primary"])
assert result.exit_code == 0
assert (
@ -18,10 +15,10 @@ def test_node_is_primary_ok(mocker: MockerFixture, use_old_replica_state: bool)
)
def test_node_is_primary_ko(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_primary_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_primary_ko", status=503)
fake_restapi("node_is_primary_ko", status=503)
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_primary"])
assert result.exit_code == 2
assert (

View file

@ -1,15 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_is_replica_ok(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_replica_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_replica_ok")
fake_restapi("node_is_replica_ok")
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_replica"])
assert result.exit_code == 0
assert (
@ -18,10 +15,10 @@ def test_node_is_replica_ok(mocker: MockerFixture, use_old_replica_state: bool)
)
def test_node_is_replica_ko(mocker: MockerFixture, use_old_replica_state: bool) -> None:
def test_node_is_replica_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_is_replica_ko", status=503)
fake_restapi("node_is_replica_ko", status=503)
result = runner.invoke(main, ["-e", "https://10.20.199.3:8008", "node_is_replica"])
assert result.exit_code == 2
assert (
@ -30,13 +27,11 @@ def test_node_is_replica_ko(mocker: MockerFixture, use_old_replica_state: bool)
)
def test_node_is_replica_ko_lag(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_ko_lag(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok", status=503)
fake_restapi("node_is_replica_ok", status=503)
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_replica", "--max-lag", "100"]
)
@ -46,7 +41,7 @@ def test_node_is_replica_ko_lag(
== "NODEISREPLICA CRITICAL - This node is not a running replica with no noloadbalance tag and a lag under 100. | is_replica=0;;@0\n"
)
my_mock(mocker, "node_is_replica_ok", status=503)
fake_restapi("node_is_replica_ok", status=503)
result = runner.invoke(
main,
[
@ -65,13 +60,11 @@ def test_node_is_replica_ko_lag(
)
def test_node_is_replica_sync_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_sync_ok(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok")
fake_restapi("node_is_replica_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_replica", "--is-sync"]
)
@ -82,13 +75,11 @@ def test_node_is_replica_sync_ok(
)
def test_node_is_replica_sync_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_sync_ko(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok", status=503)
fake_restapi("node_is_replica_ok", status=503)
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_replica", "--is-sync"]
)
@ -99,13 +90,11 @@ def test_node_is_replica_sync_ko(
)
def test_node_is_replica_async_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_async_ok(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok")
fake_restapi("node_is_replica_ok")
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_replica", "--is-async"]
)
@ -116,13 +105,11 @@ def test_node_is_replica_async_ok(
)
def test_node_is_replica_async_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_async_ko(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok", status=503)
fake_restapi("node_is_replica_ok", status=503)
result = runner.invoke(
main, ["-e", "https://10.20.199.3:8008", "node_is_replica", "--is-async"]
)
@ -133,13 +120,11 @@ def test_node_is_replica_async_ko(
)
def test_node_is_replica_params(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_is_replica_params(fake_restapi) -> None:
runner = CliRunner()
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok")
fake_restapi("node_is_replica_ok")
result = runner.invoke(
main,
[
@ -157,7 +142,7 @@ def test_node_is_replica_params(
)
# We don't do the check ourselves, patroni does it and changes the return code
my_mock(mocker, "node_is_replica_ok")
fake_restapi("node_is_replica_ok")
result = runner.invoke(
main,
[

View file

@ -1,17 +1,12 @@
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import my_mock
def test_node_patroni_version_ok(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_patroni_version_ok(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_patroni_version")
fake_restapi("node_patroni_version")
result = runner.invoke(
main,
[
@ -29,12 +24,10 @@ def test_node_patroni_version_ok(
)
def test_node_patroni_version_ko(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_patroni_version_ko(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_patroni_version")
fake_restapi("node_patroni_version")
result = runner.invoke(
main,
[

View file

@ -1,18 +1,15 @@
import nagiosplugin
from click.testing import CliRunner
from pytest_mock import MockerFixture
from check_patroni.cli import main
from .tools import here, my_mock
from .tools import here
def test_node_tl_has_changed_ok_with_timeline(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_tl_has_changed_ok_with_timeline(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_tl_has_changed")
fake_restapi("node_tl_has_changed")
result = runner.invoke(
main,
[
@ -30,15 +27,13 @@ def test_node_tl_has_changed_ok_with_timeline(
)
def test_node_tl_has_changed_ok_with_state_file(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_tl_has_changed_ok_with_state_file(fake_restapi) -> None:
runner = CliRunner()
with open(here / "node_tl_has_changed.state_file", "w") as f:
f.write('{"timeline": 58}')
my_mock(mocker, "node_tl_has_changed")
fake_restapi("node_tl_has_changed")
result = runner.invoke(
main,
[
@ -56,12 +51,10 @@ def test_node_tl_has_changed_ok_with_state_file(
)
def test_node_tl_has_changed_ko_with_timeline(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_tl_has_changed_ko_with_timeline(fake_restapi) -> None:
runner = CliRunner()
my_mock(mocker, "node_tl_has_changed")
fake_restapi("node_tl_has_changed")
result = runner.invoke(
main,
[
@ -79,15 +72,13 @@ def test_node_tl_has_changed_ko_with_timeline(
)
def test_node_tl_has_changed_ko_with_state_file_and_save(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_tl_has_changed_ko_with_state_file_and_save(fake_restapi) -> None:
runner = CliRunner()
with open(here / "node_tl_has_changed.state_file", "w") as f:
f.write('{"timeline": 700}')
my_mock(mocker, "node_tl_has_changed")
fake_restapi("node_tl_has_changed")
# test without saving the new tl
result = runner.invoke(
main,
@ -138,13 +129,11 @@ def test_node_tl_has_changed_ko_with_state_file_and_save(
assert new_tl == 58
def test_node_tl_has_changed_params(
mocker: MockerFixture, use_old_replica_state: bool
) -> None:
def test_node_tl_has_changed_params(fake_restapi) -> None:
# This one is placed last because it seems like the exceptions are not flushed from stderr for the next tests.
runner = CliRunner()
my_mock(mocker, "node_tl_has_changed")
fake_restapi("node_tl_has_changed")
result = runner.invoke(
main,
[