def test_get_gdns_publisher_raises(conf_keys, exp_msg_snip, publisher_config, mocker, auth_client, caplog, metrics): """Raise when required config key(s) missing.""" patch = 'gordon_gcp.plugins.service.gdns_publisher.gdns.GDNSClient' mocker.patch(patch) for conf_key in conf_keys: publisher_config.pop(conf_key) with pytest.raises(exceptions.GCPConfigError) as e: service.get_gdns_publisher(publisher_config, metrics) e.match('Invalid configuration:\n' + exp_msg_snip) assert len(conf_keys) == len(caplog.records)
def test_get_gdns_publisher_bad_config(conf_key, bad_value, exp_msg_snip, publisher_config, mocker, auth_client, caplog, metrics): """Raise when config values are malformed.""" patch = 'gordon_gcp.plugins.service.gdns_publisher.gdns.GDNSClient' mocker.patch(patch) publisher_config[conf_key] = bad_value with pytest.raises(exceptions.GCPConfigError) as e: service.get_gdns_publisher(publisher_config, metrics) e.match('Invalid configuration:\n' + exp_msg_snip) assert 1 == len(caplog.records)
def test_get_gdns_publisher(conf_key, conf_value, expected, mocker, publisher_config, auth_client, metrics): """Happy path to initialize a GDNSPublisher client.""" patch = 'gordon_gcp.plugins.service.gdns_publisher.gdns.GDNSClient' mocker.patch(patch) if conf_value: publisher_config[conf_key] = conf_value client = service.get_gdns_publisher(publisher_config, metrics) assert isinstance(client, service.gdns_publisher.GDNSPublisher) assert publisher_config == client.config assert expected == getattr(client, conf_key)