Fix proxy usage in tests (#443)

This commit is contained in:
Firstyear 2021-05-20 07:58:11 +10:00 committed by GitHub
parent 9d5296a34b
commit 78f780910e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 0 deletions

1
.gitignore vendored
View file

@ -12,4 +12,5 @@ kanidm_rlm_python/test_data/ca.pem
loc.sh
todo.sh
vendor.tar.*
*.patch

View file

@ -72,6 +72,7 @@ pub struct KanidmClientBuilder {
verify_hostnames: bool,
ca: Option<reqwest::Certificate>,
connect_timeout: Option<u64>,
use_system_proxies: bool,
}
fn read_file_metadata<P: AsRef<Path>>(path: &P) -> Result<Metadata, ()> {
@ -92,6 +93,7 @@ impl KanidmClientBuilder {
verify_hostnames: true,
ca: None,
connect_timeout: None,
use_system_proxies: true,
}
}
@ -125,6 +127,7 @@ impl KanidmClientBuilder {
verify_hostnames,
ca,
connect_timeout,
use_system_proxies,
} = self;
// Process and apply all our options if they exist.
let address = match kcc.uri {
@ -144,6 +147,7 @@ impl KanidmClientBuilder {
verify_hostnames,
ca,
connect_timeout,
use_system_proxies,
})
}
@ -197,6 +201,7 @@ impl KanidmClientBuilder {
verify_hostnames: self.verify_hostnames,
ca: self.ca,
connect_timeout: self.connect_timeout,
use_system_proxies: self.use_system_proxies,
}
}
@ -208,6 +213,7 @@ impl KanidmClientBuilder {
verify_hostnames: !accept_invalid_hostnames,
ca: self.ca,
connect_timeout: self.connect_timeout,
use_system_proxies: self.use_system_proxies,
}
}
@ -219,6 +225,7 @@ impl KanidmClientBuilder {
verify_hostnames: self.verify_hostnames,
ca: self.ca,
connect_timeout: self.connect_timeout,
use_system_proxies: self.use_system_proxies,
}
}
@ -229,6 +236,18 @@ impl KanidmClientBuilder {
verify_hostnames: self.verify_hostnames,
ca: self.ca,
connect_timeout: Some(secs),
use_system_proxies: self.use_system_proxies,
}
}
pub fn no_proxy(self) -> Self {
KanidmClientBuilder {
address: self.address,
verify_ca: self.verify_ca,
verify_hostnames: self.verify_hostnames,
ca: self.ca,
connect_timeout: self.connect_timeout,
use_system_proxies: false,
}
}
@ -242,6 +261,7 @@ impl KanidmClientBuilder {
verify_hostnames: self.verify_hostnames,
ca: Some(ca),
connect_timeout: self.connect_timeout,
use_system_proxies: self.use_system_proxies,
})
}
@ -283,6 +303,11 @@ impl KanidmClientBuilder {
.danger_accept_invalid_hostnames(!self.verify_hostnames)
.danger_accept_invalid_certs(!self.verify_ca);
let client_builder = match self.use_system_proxies {
true => client_builder,
false => client_builder.no_proxy(),
};
let client_builder = match &self.ca {
Some(cert) => client_builder.add_root_certificate(cert.clone()),
None => client_builder,

View file

@ -92,6 +92,7 @@ pub fn run_test(test_fn: fn(KanidmClient) -> ()) {
let addr = format!("http://127.0.0.1:{}", port);
let rsclient = KanidmClientBuilder::new()
.address(addr)
.no_proxy()
.build()
.expect("Failed to build client");

View file

@ -97,17 +97,20 @@ fn run_test(fix_fn: fn(&KanidmClient) -> (), test_fn: fn(CacheLayer, KanidmAsync
// Run fixtures
let adminclient = KanidmClientBuilder::new()
.address(addr.clone())
.no_proxy()
.build()
.expect("Failed to build sync client");
fix_fn(&adminclient);
let client = KanidmClientBuilder::new()
.address(addr.clone())
.no_proxy()
.build_async()
.expect("Failed to build async admin client");
let rsclient = KanidmClientBuilder::new()
.address(addr)
.no_proxy()
.build_async()
.expect("Failed to build client");