1
- use std:: env:: { remove_var, set_var, var} ;
1
+ // use std::env::{remove_var, set_var, var};
2
2
3
3
use crate :: {
4
4
bson:: { doc, Document } ,
5
- client:: auth:: aws:: test_utils:: * ,
6
- test:: DEFAULT_URI ,
5
+ // client::auth::aws::test_utils::*,
6
+ // test::DEFAULT_URI,
7
7
Client ,
8
8
} ;
9
9
@@ -18,109 +18,113 @@ async fn auth_aws() {
18
18
19
19
// The TestClient performs operations upon creation that trigger authentication, so the credential
20
20
// 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