@@ -2304,6 +2304,37 @@ def run_test(self, src_provider, dst_provider):
23042304 self .assertEqual (decrypt_result2 , "test" )
23052305
23062306
2307+ # https://github.com/mongodb/specifications/blob/5cf3ed/source/client-side-encryption/tests/README.rst#on-demand-aws-credentials
2308+ class TestOnDemandAWSCredentials (EncryptionIntegrationTest ):
2309+ def setUp (self ):
2310+ super (TestOnDemandAWSCredentials , self ).setUp ()
2311+ self .master_key = {
2312+ "region" : "us-east-1" ,
2313+ "key" : ("arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0" ),
2314+ }
2315+
2316+ @unittest .skipIf (any (AWS_CREDS .values ()), "AWS environment credentials are set" )
2317+ def test_01_failure (self ):
2318+ self .client_encryption = ClientEncryption (
2319+ kms_providers = {"aws" : {}},
2320+ key_vault_namespace = "keyvault.datakeys" ,
2321+ key_vault_client = client_context .client ,
2322+ codec_options = OPTS ,
2323+ )
2324+ with self .assertRaises (EncryptionError ):
2325+ self .client_encryption .create_data_key ("aws" , self .master_key )
2326+
2327+ @unittest .skipUnless (any (AWS_CREDS .values ()), "AWS environment credentials are not set" )
2328+ def test_02_success (self ):
2329+ self .client_encryption = ClientEncryption (
2330+ kms_providers = {"aws" : {}},
2331+ key_vault_namespace = "keyvault.datakeys" ,
2332+ key_vault_client = client_context .client ,
2333+ codec_options = OPTS ,
2334+ )
2335+ self .client_encryption .create_data_key ("aws" , self .master_key )
2336+
2337+
23072338class TestQueryableEncryptionDocsExample (EncryptionIntegrationTest ):
23082339 # Queryable Encryption is not supported on Standalone topology.
23092340 @client_context .require_no_standalone
0 commit comments