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