def test_secret_url(url, has_secret, from_file): """Make sure secret parts in an URL are stripped correctly. The following parts are considered secret: - If the PAC info is loaded from a local file, nothing. - If the URL to resolve is a HTTP URL, the username/password. - If the URL to resolve is a HTTPS URL, the username/password, query and path. """ test_str = """ function FindProxyForURL(domain, host) {{ has_secret = domain.indexOf("secret") !== -1; expected_secret = {}; if (has_secret !== expected_secret) {{ throw new Error("Expected secret: " + expected_secret + ", found: " + has_secret + " in " + domain); }} return "DIRECT"; }} """.format('true' if (has_secret or from_file) else 'false') res = pac.PACResolver(test_str) res.resolve(QNetworkProxyQuery(QUrl(url)), from_file=from_file)
def test_wrong_pac_string(string): with pytest.raises(pac.EvalProxyError): pac.PACResolver(string)