def test_parse_raises_errors_on_invalid_urls(self, m_exists): user_values = { "UA_CONTRACT_URL": "htp://contract" # no acceptable url scheme } with mock.patch.dict("uaclient.config.os.environ", values=user_values): with pytest.raises(exceptions.UserFacingError) as excinfo: parse_config() expected_msg = "Invalid url in config. contract_url: htp://contract" assert expected_msg == excinfo.value.msg
def test_parse_config_uses_defaults_when_no_config_present(self, m_exists): cwd = os.getcwd() with mock.patch.dict("uaclient.config.os.environ", values={}): config = parse_config() expected_calls = [ mock.call("{}/uaclient.conf".format(cwd)), mock.call("/etc/ubuntu-advantage/uaclient.conf"), ] assert expected_calls == m_exists.call_args_list expected_default_config = { "contract_url": "https://contracts.canonical.com", "data_dir": "/var/lib/ubuntu-advantage", "log_file": "/var/log/ubuntu-advantage.log", "log_level": "INFO", } assert expected_default_config == config
def test_parse_config_scrubs_user_environ_values(self, m_exists): user_values = { "UA_CONTRACT_URL": "https://contract", "ua_data_dir": "~/somedir", "Ua_LoG_FiLe": "some.log", "UA_LOG_LEVEL": "debug", } with mock.patch.dict("uaclient.config.os.environ", values=user_values): config = parse_config() expanded_dir = os.path.expanduser("~") expected_default_config = { "contract_url": "https://contract", "data_dir": "{}/somedir".format(expanded_dir), "log_file": "some.log", "log_level": "DEBUG", } assert expected_default_config == config