def test_plugin_tells_app_to_follow_new_leader(app): plugins = setup_plugins(app) app.initialize() plugins.reset_mock() app.follow(primary_conninfo=dict(host='127.0.0.9', port=5432)) assert plugins.mock_calls == [ call.pg_setup_replication(primary_conninfo={'port': 5432, 'host': '127.0.0.9'}), call.pg_reload()]
def test_plugin_tells_app_to_follow_new_leader(app): plugins = setup_plugins(app) app.initialize() plugins.reset_mock() app.follow(primary_conninfo=dict(host='127.0.0.9', port=5432)) assert plugins.mock_calls == [ call.pg_replication_role(), call.pg_setup_replication({'port': 5432, 'host': '127.0.0.9'}), call.pg_restart()] # must restart for new recovery.conf to take effect
def test_plugin_tells_app_to_follow_new_leader(app): plugins = setup_plugins(app) app.initialize() plugins.reset_mock() app.follow(primary_conninfo=dict(host='127.0.0.9', port=5432)) assert plugins.mock_calls == [ call.pg_replication_role(), call.pg_setup_replication({ 'port': 5432, 'host': '127.0.0.9' }), call.pg_restart() ] # must restart for new recovery.conf to take effect
def test_replica_bootstrap(app): plugins = setup_plugins(app, dcs_get_database_identifier='1234', pg_get_database_identifier='42') timeout = app.initialize() assert app._plugins.mock_calls == [ call.initialize(), call.get_my_id(), # compare our id with the id in the DCS call.dcs_get_database_identifier(), call.pg_get_database_identifier(), # make sure postgresql is stopped call.pg_stop(), # postgresql restore call.pg_restore(), call.pg_setup_replication(), call.pg_am_i_replica() ] # shut down cleanly and immediately assert timeout == 0
def test_replica_bootstrap(app): plugins = setup_plugins(app, dcs_get_database_identifier='1234') plugins.pg_get_database_identifier.side_effect = ['42', '1234'] timeout = app.initialize() assert plugins.mock_calls == [ call.initialize(), call.get_my_id(), # compare our id with the id in the DCS call.dcs_get_database_identifier(), call.pg_get_database_identifier(), # make sure postgresql is stopped call.pg_stop(), # postgresql restore call.pg_initdb(), call.pg_restore(), call.pg_setup_replication(None), call.pg_get_database_identifier(), call.pg_replication_role() ] # shut down cleanly and immediately assert timeout == 0
def test_replica_bootstrap_fails_sanity_test(app): plugins = setup_plugins(app, pg_am_i_replica=False, dcs_get_database_identifier='1234', pg_get_database_identifier='42') timeout = app.initialize() assert app._plugins.mock_calls == [ call.initialize(), call.get_my_id(), # compare our id with the id in the DCS call.dcs_get_database_identifier(), call.pg_get_database_identifier(), # make sure postgresql is stopped call.pg_stop(), # postgresql restore call.pg_restore(), call.pg_setup_replication(), call.pg_am_i_replica(), call.pg_reset(), ] # shut down after 5 seconds to try again assert timeout == 5
def test_replica_bootstrap_fails_sanity_test(app): plugins = setup_plugins(app, pg_replication_role='master', dcs_get_database_identifier='1234', pg_get_database_identifier='42') timeout = app.initialize() assert plugins.mock_calls == [ call.initialize(), call.get_my_id(), # compare our id with the id in the DCS call.dcs_get_database_identifier(), call.pg_get_database_identifier(), # make sure postgresql is stopped call.pg_stop(), # postgresql restore call.pg_initdb(), call.pg_restore(), call.pg_setup_replication(None), call.pg_get_database_identifier(), call.pg_replication_role(), call.pg_reset(), ] # shut down after 5 seconds to try again assert timeout == 5