@@ -53,3 +53,93 @@ def test_passes_authority_argument(credential_name, environment_variables):
53
53
assert mock_credential .call_count == 1
54
54
_ , kwargs = mock_credential .call_args
55
55
assert kwargs ["authority" ] == authority
56
+
57
+
58
+ def test_client_secret_configuration ():
59
+ """the credential should pass expected values and any keyword arguments to its inner credential"""
60
+
61
+ client_id = "client-id"
62
+ client_secret = "..."
63
+ tenant_id = "tenant_id"
64
+ bar = "bar"
65
+
66
+ environment = {
67
+ EnvironmentVariables .AZURE_CLIENT_ID : client_id ,
68
+ EnvironmentVariables .AZURE_CLIENT_SECRET : client_secret ,
69
+ EnvironmentVariables .AZURE_TENANT_ID : tenant_id ,
70
+ }
71
+ with mock .patch (EnvironmentCredential .__module__ + ".ClientSecretCredential" ) as mock_credential :
72
+ with mock .patch .dict ("os.environ" , environment , clear = True ):
73
+ EnvironmentCredential (foo = bar )
74
+
75
+ assert mock_credential .call_count == 1
76
+ _ , kwargs = mock_credential .call_args
77
+ assert kwargs ["client_id" ] == client_id
78
+ assert kwargs ["client_secret" ] == client_secret
79
+ assert kwargs ["tenant_id" ] == tenant_id
80
+ assert kwargs ["foo" ] == bar
81
+
82
+
83
+ def test_certificate_configuration ():
84
+ """the credential should pass expected values and any keyword arguments to its inner credential"""
85
+
86
+ client_id = "client-id"
87
+ certificate_path = "..."
88
+ tenant_id = "tenant_id"
89
+ bar = "bar"
90
+
91
+ environment = {
92
+ EnvironmentVariables .AZURE_CLIENT_ID : client_id ,
93
+ EnvironmentVariables .AZURE_CLIENT_CERTIFICATE_PATH : certificate_path ,
94
+ EnvironmentVariables .AZURE_TENANT_ID : tenant_id ,
95
+ }
96
+ with mock .patch (EnvironmentCredential .__module__ + ".CertificateCredential" ) as mock_credential :
97
+ with mock .patch .dict ("os.environ" , environment , clear = True ):
98
+ EnvironmentCredential (foo = bar )
99
+
100
+ assert mock_credential .call_count == 1
101
+ _ , kwargs = mock_credential .call_args
102
+ assert kwargs ["client_id" ] == client_id
103
+ assert kwargs ["certificate_path" ] == certificate_path
104
+ assert kwargs ["tenant_id" ] == tenant_id
105
+ assert kwargs ["foo" ] == bar
106
+
107
+
108
+ def test_username_password_configuration ():
109
+ """the credential should pass expected values and any keyword arguments to its inner credential"""
110
+
111
+ client_id = "client-id"
112
+
113
+ password = "password"
114
+ bar = "bar"
115
+
116
+ environment = {
117
+ EnvironmentVariables .AZURE_CLIENT_ID : client_id ,
118
+ EnvironmentVariables .AZURE_USERNAME : username ,
119
+ EnvironmentVariables .AZURE_PASSWORD : password ,
120
+ }
121
+ with mock .patch (EnvironmentCredential .__module__ + ".UsernamePasswordCredential" ) as mock_credential :
122
+ with mock .patch .dict ("os.environ" , environment , clear = True ):
123
+ EnvironmentCredential (foo = bar )
124
+
125
+ assert mock_credential .call_count == 1
126
+ _ , kwargs = mock_credential .call_args
127
+ assert kwargs ["client_id" ] == client_id
128
+ assert kwargs ["username" ] == username
129
+ assert kwargs ["password" ] == password
130
+ assert kwargs ["foo" ] == bar
131
+
132
+ # optional tenant id should be used when set
133
+ tenant_id = "tenant-id"
134
+ environment = dict (environment , ** {EnvironmentVariables .AZURE_TENANT_ID : tenant_id })
135
+ with mock .patch (EnvironmentCredential .__module__ + ".UsernamePasswordCredential" ) as mock_credential :
136
+ with mock .patch .dict ("os.environ" , environment , clear = True ):
137
+ EnvironmentCredential (foo = bar )
138
+
139
+ assert mock_credential .call_count == 1
140
+ _ , kwargs = mock_credential .call_args
141
+ assert kwargs ["client_id" ] == client_id
142
+ assert kwargs ["username" ] == username
143
+ assert kwargs ["password" ] == password
144
+ assert kwargs ["tenant_id" ] == tenant_id
145
+ assert kwargs ["foo" ] == bar
0 commit comments