Skip to content

Commit 725d373

Browse files
committed
Comment out tests for credential caching
1 parent cb26899 commit 725d373

File tree

2 files changed

+146
-142
lines changed

2 files changed

+146
-142
lines changed

src/client/auth/aws.rs

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -631,44 +631,44 @@ impl ServerFirst {
631631
}
632632
}
633633

634-
#[cfg(test)]
635-
pub(crate) mod test_utils {
636-
use super::{AwsCredential, CACHED_CREDENTIAL};
634+
// #[cfg(test)]
635+
// pub(crate) mod test_utils {
636+
// use super::{AwsCredential, CACHED_CREDENTIAL};
637637

638-
pub(crate) async fn cached_credential() -> Option<AwsCredential> {
639-
CACHED_CREDENTIAL.lock().await.clone()
640-
}
638+
// pub(crate) async fn cached_credential() -> Option<AwsCredential> {
639+
// CACHED_CREDENTIAL.lock().await.clone()
640+
// }
641641

642-
pub(crate) async fn clear_cached_credential() {
643-
*CACHED_CREDENTIAL.lock().await = None;
644-
}
642+
// pub(crate) async fn clear_cached_credential() {
643+
// *CACHED_CREDENTIAL.lock().await = None;
644+
// }
645645

646-
pub(crate) async fn poison_cached_credential() {
647-
CACHED_CREDENTIAL
648-
.lock()
649-
.await
650-
.as_mut()
651-
.unwrap()
652-
.access_key_id = "bad".into();
653-
}
646+
// pub(crate) async fn poison_cached_credential() {
647+
// CACHED_CREDENTIAL
648+
// .lock()
649+
// .await
650+
// .as_mut()
651+
// .unwrap()
652+
// .access_key_id = "bad".into();
653+
// }
654654

655-
pub(crate) async fn cached_access_key_id() -> String {
656-
cached_credential().await.unwrap().access_key_id
657-
}
655+
// pub(crate) async fn cached_access_key_id() -> String {
656+
// cached_credential().await.unwrap().access_key_id
657+
// }
658658

659-
pub(crate) async fn cached_secret_access_key() -> String {
660-
cached_credential().await.unwrap().secret_access_key
661-
}
659+
// pub(crate) async fn cached_secret_access_key() -> String {
660+
// cached_credential().await.unwrap().secret_access_key
661+
// }
662662

663-
pub(crate) async fn cached_session_token() -> Option<String> {
664-
cached_credential().await.unwrap().session_token
665-
}
663+
// pub(crate) async fn cached_session_token() -> Option<String> {
664+
// cached_credential().await.unwrap().session_token
665+
// }
666666

667-
pub(crate) async fn cached_expiration() -> crate::bson::DateTime {
668-
cached_credential().await.unwrap().expiration.unwrap()
669-
}
667+
// pub(crate) async fn cached_expiration() -> crate::bson::DateTime {
668+
// cached_credential().await.unwrap().expiration.unwrap()
669+
// }
670670

671-
pub(crate) async fn set_cached_expiration(expiration: crate::bson::DateTime) {
672-
CACHED_CREDENTIAL.lock().await.as_mut().unwrap().expiration = Some(expiration);
673-
}
674-
}
671+
// pub(crate) async fn set_cached_expiration(expiration: crate::bson::DateTime) {
672+
// CACHED_CREDENTIAL.lock().await.as_mut().unwrap().expiration = Some(expiration);
673+
// }
674+
// }

src/test/auth/aws.rs

Lines changed: 113 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
use std::env::{remove_var, set_var, var};
1+
// use std::env::{remove_var, set_var, var};
22

33
use crate::{
44
bson::{doc, Document},
5-
client::auth::aws::test_utils::*,
6-
test::DEFAULT_URI,
5+
// client::auth::aws::test_utils::*,
6+
// test::DEFAULT_URI,
77
Client,
88
};
99

@@ -18,109 +18,113 @@ async fn auth_aws() {
1818

1919
// The TestClient performs operations upon creation that trigger authentication, so the credential
2020
// caching tests use a regular client instead to avoid that noise.
21-
async fn get_client() -> Client {
22-
Client::with_uri_str(DEFAULT_URI.clone()).await.unwrap()
23-
}
24-
25-
#[tokio::test]
26-
async fn credential_caching() {
27-
// This test should only be run when authenticating using AWS endpoints.
28-
if var("SKIP_CREDENTIAL_CACHING_TESTS").is_ok() {
29-
return;
30-
}
31-
32-
clear_cached_credential().await;
33-
34-
let client = get_client().await;
35-
let coll = client.database("aws").collection::<Document>("somecoll");
36-
coll.find_one(doc! {}).await.unwrap();
37-
assert!(cached_credential().await.is_some());
38-
39-
let now = crate::bson::DateTime::now();
40-
set_cached_expiration(now).await;
41-
42-
let client = get_client().await;
43-
let coll = client.database("aws").collection::<Document>("somecoll");
44-
coll.find_one(doc! {}).await.unwrap();
45-
assert!(cached_credential().await.is_some());
46-
assert!(cached_expiration().await > now);
47-
48-
poison_cached_credential().await;
49-
50-
let client = get_client().await;
51-
let coll = client.database("aws").collection::<Document>("somecoll");
52-
match coll.find_one(doc! {}).await {
53-
Ok(_) => panic!(
54-
"find one should have failed with authentication error due to poisoned cached \
55-
credential"
56-
),
57-
Err(error) => assert!(error.is_auth_error()),
58-
}
59-
assert!(cached_credential().await.is_none());
60-
61-
coll.find_one(doc! {}).await.unwrap();
62-
assert!(cached_credential().await.is_some());
63-
}
64-
65-
#[tokio::test]
66-
async fn credential_caching_environment_vars() {
67-
// This test should only be run when authenticating using AWS endpoints.
68-
if var("SKIP_CREDENTIAL_CACHING_TESTS").is_ok() {
69-
return;
70-
}
71-
72-
clear_cached_credential().await;
73-
74-
let client = get_client().await;
75-
let coll = client.database("aws").collection::<Document>("somecoll");
76-
coll.find_one(doc! {}).await.unwrap();
77-
assert!(cached_credential().await.is_some());
78-
79-
set_var("AWS_ACCESS_KEY_ID", cached_access_key_id().await);
80-
set_var("AWS_SECRET_ACCESS_KEY", cached_secret_access_key().await);
81-
if let Some(session_token) = cached_session_token().await {
82-
set_var("AWS_SESSION_TOKEN", session_token);
83-
}
84-
clear_cached_credential().await;
85-
86-
let client = get_client().await;
87-
let coll = client.database("aws").collection::<Document>("somecoll");
88-
coll.find_one(doc! {}).await.unwrap();
89-
assert!(cached_credential().await.is_none());
90-
91-
set_var("AWS_ACCESS_KEY_ID", "bad");
92-
set_var("AWS_SECRET_ACCESS_KEY", "bad");
93-
set_var("AWS_SESSION_TOKEN", "bad");
94-
95-
let client = get_client().await;
96-
let coll = client.database("aws").collection::<Document>("somecoll");
97-
match coll.find_one(doc! {}).await {
98-
Ok(_) => panic!(
99-
"find one should have failed with authentication error due to poisoned environment \
100-
variables"
101-
),
102-
Err(error) => assert!(error.is_auth_error()),
103-
}
104-
105-
remove_var("AWS_ACCESS_KEY_ID");
106-
remove_var("AWS_SECRET_ACCESS_KEY");
107-
remove_var("AWS_SESSION_TOKEN");
108-
clear_cached_credential().await;
109-
110-
let client = get_client().await;
111-
let coll = client.database("aws").collection::<Document>("somecoll");
112-
coll.find_one(doc! {}).await.unwrap();
113-
assert!(cached_credential().await.is_some());
114-
115-
set_var("AWS_ACCESS_KEY_ID", "bad");
116-
set_var("AWS_SECRET_ACCESS_KEY", "bad");
117-
set_var("AWS_SESSION_TOKEN", "bad");
118-
119-
let client = get_client().await;
120-
let coll = client.database("aws").collection::<Document>("somecoll");
121-
coll.find_one(doc! {}).await.unwrap();
122-
123-
remove_var("AWS_ACCESS_KEY_ID");
124-
remove_var("AWS_SECRET_ACCESS_KEY");
125-
remove_var("AWS_SESSION_TOKEN");
126-
}
21+
// async fn get_client() -> Client {
22+
// Client::with_uri_str(DEFAULT_URI.clone()).await.unwrap()
23+
// }
24+
25+
// #[tokio::test]
26+
// async fn credential_caching() {
27+
// // This test should only be run when authenticating using AWS endpoints.
28+
// if var("SKIP_CREDENTIAL_CACHING_TESTS").is_ok() {
29+
// return;
30+
// }
31+
32+
// clear_cached_credential().await;
33+
34+
// let client = get_client().await;
35+
// let coll = client.database("aws").collection::<Document>("somecoll");
36+
// coll.find_one(doc! {}).await.unwrap();
37+
// assert!(cached_credential().await.is_some());
38+
39+
// let now = crate::bson::DateTime::now();
40+
// set_cached_expiration(now).await;
41+
42+
// let client = get_client().await;
43+
// let coll = client.database("aws").collection::<Document>("somecoll");
44+
// coll.find_one(doc! {}).await.unwrap();
45+
// assert!(cached_credential().await.is_some());
46+
// assert!(cached_expiration().await > now);
47+
48+
// poison_cached_credential().await;
49+
50+
// let client = get_client().await;
51+
// let coll = client.database("aws").collection::<Document>("somecoll");
52+
// match coll.find_one(doc! {}).await {
53+
// Ok(_) => panic!(
54+
// "find one should have failed with authentication error due to poisoned cached \
55+
// credential"
56+
// ),
57+
// Err(error) => assert!(error.is_auth_error()),
58+
// }
59+
// assert!(cached_credential().await.is_none());
60+
61+
// coll.find_one(doc! {}).await.unwrap();
62+
// assert!(cached_credential().await.is_some());
63+
// }
64+
65+
// todo: tests for aws sdk caching
66+
// TODO: find documentation for rust aws sdk credential caching
67+
// can delete caching logic if the aws sdk handles it properly for our needs
68+
69+
// #[tokio::test]
70+
// async fn credential_caching_environment_vars() {
71+
// // This test should only be run when authenticating using AWS endpoints.
72+
// if var("SKIP_CREDENTIAL_CACHING_TESTS").is_ok() {
73+
// return;
74+
// }
75+
76+
// clear_cached_credential().await;
77+
78+
// let client = get_client().await;
79+
// let coll = client.database("aws").collection::<Document>("somecoll");
80+
// coll.find_one(doc! {}).await.unwrap();
81+
// assert!(cached_credential().await.is_some());
82+
83+
// set_var("AWS_ACCESS_KEY_ID", cached_access_key_id().await);
84+
// set_var("AWS_SECRET_ACCESS_KEY", cached_secret_access_key().await);
85+
// if let Some(session_token) = cached_session_token().await {
86+
// set_var("AWS_SESSION_TOKEN", session_token);
87+
// }
88+
// clear_cached_credential().await;
89+
90+
// let client = get_client().await;
91+
// let coll = client.database("aws").collection::<Document>("somecoll");
92+
// coll.find_one(doc! {}).await.unwrap();
93+
// assert!(cached_credential().await.is_none());
94+
95+
// set_var("AWS_ACCESS_KEY_ID", "bad");
96+
// set_var("AWS_SECRET_ACCESS_KEY", "bad");
97+
// set_var("AWS_SESSION_TOKEN", "bad");
98+
99+
// let client = get_client().await;
100+
// let coll = client.database("aws").collection::<Document>("somecoll");
101+
// match coll.find_one(doc! {}).await {
102+
// Ok(_) => panic!(
103+
// "find one should have failed with authentication error due to poisoned environment \
104+
// variables"
105+
// ),
106+
// Err(error) => assert!(error.is_auth_error()),
107+
// }
108+
109+
// remove_var("AWS_ACCESS_KEY_ID");
110+
// remove_var("AWS_SECRET_ACCESS_KEY");
111+
// remove_var("AWS_SESSION_TOKEN");
112+
// clear_cached_credential().await;
113+
114+
// let client = get_client().await;
115+
// let coll = client.database("aws").collection::<Document>("somecoll");
116+
// coll.find_one(doc! {}).await.unwrap();
117+
// assert!(cached_credential().await.is_some());
118+
119+
// set_var("AWS_ACCESS_KEY_ID", "bad");
120+
// set_var("AWS_SECRET_ACCESS_KEY", "bad");
121+
// set_var("AWS_SESSION_TOKEN", "bad");
122+
123+
// let client = get_client().await;
124+
// let coll = client.database("aws").collection::<Document>("somecoll");
125+
// coll.find_one(doc! {}).await.unwrap();
126+
127+
// remove_var("AWS_ACCESS_KEY_ID");
128+
// remove_var("AWS_SECRET_ACCESS_KEY");
129+
// remove_var("AWS_SESSION_TOKEN");
130+
// }

0 commit comments

Comments
 (0)