|
1 | | -import random |
2 | 1 | import socket |
3 | | -import string |
4 | 2 | import types |
5 | 3 | from unittest import mock |
6 | 4 | from unittest.mock import patch |
7 | 5 |
|
8 | 6 | import pytest |
9 | 7 |
|
10 | | -import redis |
11 | 8 | from redis.backoff import NoBackoff |
12 | | -from redis.connection import Connection, CredentialsProvider |
13 | | -from redis.exceptions import ( |
14 | | - ConnectionError, |
15 | | - InvalidResponse, |
16 | | - ResponseError, |
17 | | - TimeoutError, |
18 | | -) |
| 9 | +from redis.connection import Connection |
| 10 | +from redis.exceptions import ConnectionError, InvalidResponse, TimeoutError |
19 | 11 | from redis.retry import Retry |
20 | 12 | from redis.utils import HIREDIS_AVAILABLE |
21 | 13 |
|
22 | | -from .conftest import _get_client, skip_if_redis_enterprise, skip_if_server_version_lt |
| 14 | +from .conftest import skip_if_server_version_lt |
23 | 15 |
|
24 | 16 |
|
25 | 17 | @pytest.mark.skipif(HIREDIS_AVAILABLE, reason="PythonParser only") |
@@ -130,86 +122,3 @@ def test_connect_timeout_error_without_retry(self): |
130 | 122 | assert conn._connect.call_count == 1 |
131 | 123 | assert str(e.value) == "Timeout connecting to server" |
132 | 124 | self.clear(conn) |
133 | | - |
134 | | - |
135 | | -class TestCredentialsProvider: |
136 | | - @skip_if_redis_enterprise() |
137 | | - def test_credentials_provider_without_supplier(self, r, request): |
138 | | - # first, test for default user (`username` is supposed to be optional) |
139 | | - default_username = "default" |
140 | | - temp_pass = "temp_pass" |
141 | | - creds_provider = CredentialsProvider(default_username, temp_pass) |
142 | | - r.config_set("requirepass", temp_pass) |
143 | | - creds = creds_provider.get_credentials() |
144 | | - assert r.auth(creds[1], creds[0]) is True |
145 | | - assert r.auth(creds_provider.get_password()) is True |
146 | | - |
147 | | - # test for other users |
148 | | - username = "redis-py-auth" |
149 | | - password = "strong_password" |
150 | | - |
151 | | - def teardown(): |
152 | | - try: |
153 | | - r.auth(temp_pass) |
154 | | - except ResponseError: |
155 | | - r.auth("default", "") |
156 | | - r.config_set("requirepass", "") |
157 | | - r.acl_deluser(username) |
158 | | - |
159 | | - request.addfinalizer(teardown) |
160 | | - |
161 | | - assert r.acl_setuser( |
162 | | - username, |
163 | | - enabled=True, |
164 | | - passwords=["+" + password], |
165 | | - keys="~*", |
166 | | - commands=["+ping", "+command", "+info", "+select", "+flushdb", "+cluster"], |
167 | | - ) |
168 | | - |
169 | | - creds_provider2 = CredentialsProvider(username, password) |
170 | | - r2 = _get_client( |
171 | | - redis.Redis, request, flushdb=False, credentials_provider=creds_provider2 |
172 | | - ) |
173 | | - |
174 | | - assert r2.ping() is True |
175 | | - |
176 | | - @skip_if_redis_enterprise() |
177 | | - def test_credentials_provider_with_supplier(self, r, request): |
178 | | - import functools |
179 | | - |
180 | | - @functools.lru_cache(maxsize=10) |
181 | | - def auth_supplier(user, endpoint): |
182 | | - def get_random_string(length): |
183 | | - letters = string.ascii_lowercase |
184 | | - result_str = "".join(random.choice(letters) for i in range(length)) |
185 | | - return result_str |
186 | | - |
187 | | - auth_token = get_random_string(5) + user + "_" + endpoint |
188 | | - return user, auth_token |
189 | | - |
190 | | - username = "redis-py-auth" |
191 | | - creds_provider = CredentialsProvider( |
192 | | - supplier=auth_supplier, |
193 | | - user=username, |
194 | | - endpoint="localhost", |
195 | | - ) |
196 | | - password = creds_provider.get_password() |
197 | | - |
198 | | - assert r.acl_setuser( |
199 | | - username, |
200 | | - enabled=True, |
201 | | - passwords=["+" + password], |
202 | | - keys="~*", |
203 | | - commands=["+ping", "+command", "+info", "+select", "+flushdb", "+cluster"], |
204 | | - ) |
205 | | - |
206 | | - def teardown(): |
207 | | - r.acl_deluser(username) |
208 | | - |
209 | | - request.addfinalizer(teardown) |
210 | | - |
211 | | - r2 = _get_client( |
212 | | - redis.Redis, request, flushdb=False, credentials_provider=creds_provider |
213 | | - ) |
214 | | - |
215 | | - assert r2.ping() is True |
0 commit comments