From bc2d2917c3659354e1a6aed1854bf97b1a32a165 Mon Sep 17 00:00:00 2001 From: Denis Laxalde Date: Thu, 28 Sep 2023 10:57:24 +0200 Subject: [PATCH] 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. --- tests/conftest.py | 15 ++++- tests/test_api.py | 15 ++--- tests/test_cluster_config_has_changed.py | 34 ++++------- tests/test_cluster_has_leader.py | 21 ++----- tests/test_cluster_has_replica.py | 65 +++++----------------- tests/test_cluster_has_scheduled_action.py | 21 ++----- tests/test_cluster_is_in_maintenance.py | 21 ++----- tests/test_cluster_node_count.py | 55 ++++-------------- tests/test_node_is_alive.py | 11 ++-- tests/test_node_is_leader.py | 15 ++--- tests/test_node_is_pending_restart.py | 15 ++--- tests/test_node_is_primary.py | 11 ++-- tests/test_node_is_replica.py | 51 ++++++----------- tests/test_node_patroni_version.py | 15 ++--- tests/test_node_tl_has_changed.py | 33 ++++------- 15 files changed, 124 insertions(+), 274 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index d1d5a73..0c44422 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -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) diff --git a/tests/test_api.py b/tests/test_api.py index 20fae63..0485673 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -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"] ) diff --git a/tests/test_cluster_config_has_changed.py b/tests/test_cluster_config_has_changed.py index 193bab3..7e95f92 100644 --- a/tests/test_cluster_config_has_changed.py +++ b/tests/test_cluster_config_has_changed.py @@ -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, [ diff --git a/tests/test_cluster_has_leader.py b/tests/test_cluster_has_leader.py index fdf1a4a..0e8761d 100644 --- a/tests/test_cluster_has_leader.py +++ b/tests/test_cluster_has_leader.py @@ -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"] ) diff --git a/tests/test_cluster_has_replica.py b/tests/test_cluster_has_replica.py index 3e9f1e1..4abd37c 100644 --- a/tests/test_cluster_has_replica.py +++ b/tests/test_cluster_has_replica.py @@ -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, [ diff --git a/tests/test_cluster_has_scheduled_action.py b/tests/test_cluster_has_scheduled_action.py index 993e0e2..fcb8763 100644 --- a/tests/test_cluster_has_scheduled_action.py +++ b/tests/test_cluster_has_scheduled_action.py @@ -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"] ) diff --git a/tests/test_cluster_is_in_maintenance.py b/tests/test_cluster_is_in_maintenance.py index 819f96d..a85fc3e 100644 --- a/tests/test_cluster_is_in_maintenance.py +++ b/tests/test_cluster_is_in_maintenance.py @@ -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"] ) diff --git a/tests/test_cluster_node_count.py b/tests/test_cluster_node_count.py index 5c51a38..f483eba 100644 --- a/tests/test_cluster_node_count.py +++ b/tests/test_cluster_node_count.py @@ -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, [ diff --git a/tests/test_node_is_alive.py b/tests/test_node_is_alive.py index 88e9670..e4df290 100644 --- a/tests/test_node_is_alive.py +++ b/tests/test_node_is_alive.py @@ -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 ( diff --git a/tests/test_node_is_leader.py b/tests/test_node_is_leader.py index 05b366d..c8db1d8 100644 --- a/tests/test_node_is_leader.py +++ b/tests/test_node_is_leader.py @@ -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"], diff --git a/tests/test_node_is_pending_restart.py b/tests/test_node_is_pending_restart.py index 55abf49..d6a765d 100644 --- a/tests/test_node_is_pending_restart.py +++ b/tests/test_node_is_pending_restart.py @@ -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"] ) diff --git a/tests/test_node_is_primary.py b/tests/test_node_is_primary.py index 39a5494..df9f4e2 100644 --- a/tests/test_node_is_primary.py +++ b/tests/test_node_is_primary.py @@ -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 ( diff --git a/tests/test_node_is_replica.py b/tests/test_node_is_replica.py index 6716f35..e1c9bc6 100644 --- a/tests/test_node_is_replica.py +++ b/tests/test_node_is_replica.py @@ -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, [ diff --git a/tests/test_node_patroni_version.py b/tests/test_node_patroni_version.py index eb6a76c..ab8aca3 100644 --- a/tests/test_node_patroni_version.py +++ b/tests/test_node_patroni_version.py @@ -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, [ diff --git a/tests/test_node_tl_has_changed.py b/tests/test_node_tl_has_changed.py index b3688a1..779c526 100644 --- a/tests/test_node_tl_has_changed.py +++ b/tests/test_node_tl_has_changed.py @@ -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, [