Skip to content

Commit adcf588

Browse files
authored
split update_key into 2 methods (Azure#16405)
1 parent 82e5afc commit adcf588

File tree

2 files changed

+31
-15
lines changed

2 files changed

+31
-15
lines changed

sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_key_credential.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,24 +39,36 @@ def api_key(self):
3939
"""
4040
return self._api_key
4141

42-
def update(self, subscription_key=None, api_key=None):
43-
# type: (str, str) -> None
44-
"""Update the subscription and/or api key.
42+
def update_subscription_key(self, subscription_key):
43+
# type: (str) -> None
44+
"""Update the subscription key.
4545
4646
This can be used when you've regenerated your service keys and want
4747
to update long-lived clients.
4848
4949
:param str subscription_key: The subscription key
50-
:param str api_key: The api key
5150
:raises: ValueError or TypeError
5251
"""
53-
if not subscription_key and not api_key:
54-
raise ValueError("Pass at least one non-empty key for updating.")
5552
if subscription_key:
5653
if not isinstance(subscription_key, six.string_types):
5754
raise TypeError("The subscription_key used for updating must be a string.")
5855
self._subscription_key = subscription_key
56+
else:
57+
raise ValueError("Subscription key cannot be None.")
58+
59+
def update_api_key(self, api_key):
60+
# type: (str) -> None
61+
"""Update the api key.
62+
63+
This can be used when you've regenerated your service keys and want
64+
to update long-lived clients.
65+
66+
:param str api_key: The api key
67+
:raises: ValueError or TypeError
68+
"""
5969
if api_key:
6070
if not isinstance(api_key, six.string_types):
6171
raise TypeError("The api_key used for updating must be a string.")
6272
self._api_key = api_key
73+
else:
74+
raise ValueError("API key cannot be None.")

sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_credential.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,19 @@ def test_credential_rotate_both_keys(self):
3232
assert result
3333

3434
# rotate both keys
35-
credential.update(subscription_key="xxx", api_key="xxx")
35+
credential.update_subscription_key("xxx")
3636
assert credential.subscription_key == "xxx"
37+
credential.update_api_key("xxx")
3738
assert credential.api_key == "xxx"
3839

3940
# call fails
4041
with pytest.raises(ClientAuthenticationError):
4142
result = client.get_feedback(feedback_id=self.feedback_id)
4243

4344
# rotate back to valid credentials
44-
credential.update(subscription_key=self.subscription_key, api_key=self.api_key)
45+
credential.update_subscription_key(self.subscription_key)
4546
assert credential.subscription_key == self.subscription_key
47+
credential.update_api_key(self.api_key)
4648
assert credential.api_key == self.api_key
4749

4850
# make successful call
@@ -58,7 +60,7 @@ def test_credential_rotate_sub_key_only(self):
5860
assert result
5961

6062
# rotate one key
61-
credential.update(subscription_key="xxx")
63+
credential.update_subscription_key("xxx")
6264
assert credential.subscription_key == "xxx"
6365
assert credential.api_key == self.api_key
6466

@@ -67,7 +69,7 @@ def test_credential_rotate_sub_key_only(self):
6769
result = client.get_feedback(feedback_id=self.feedback_id)
6870

6971
# rotate back to valid credentials
70-
credential.update(subscription_key=self.subscription_key)
72+
credential.update_subscription_key(self.subscription_key)
7173
assert credential.subscription_key == self.subscription_key
7274
assert credential.api_key == self.api_key
7375

@@ -84,7 +86,7 @@ def test_credential_rotate_api_key_only(self):
8486
assert result
8587

8688
# rotate one key
87-
credential.update(api_key="xxx")
89+
credential.update_api_key("xxx")
8890
assert credential.subscription_key == self.subscription_key
8991
assert credential.api_key == "xxx"
9092

@@ -93,7 +95,7 @@ def test_credential_rotate_api_key_only(self):
9395
result = client.get_feedback(feedback_id=self.feedback_id)
9496

9597
# rotate back to valid credentials
96-
credential.update(api_key=self.api_key)
98+
credential.update_api_key(self.api_key)
9799
assert credential.subscription_key == self.subscription_key
98100
assert credential.api_key == self.api_key
99101

@@ -105,8 +107,10 @@ def test_credential_bad_input(self):
105107
credential = MetricsAdvisorKeyCredential(self.subscription_key, self.api_key)
106108

107109
with pytest.raises(ValueError):
108-
credential.update()
110+
credential.update_subscription_key(None)
111+
with pytest.raises(ValueError):
112+
credential.update_api_key(None)
109113
with pytest.raises(TypeError):
110-
credential.update(subscription_key=34)
114+
credential.update_subscription_key(subscription_key=34)
111115
with pytest.raises(TypeError):
112-
credential.update(api_key=34)
116+
credential.update_api_key(api_key=34)

0 commit comments

Comments
 (0)