1919)
2020
2121
22- def test_base_options_parsing ():
22+ def test_base_options_parsing_memcache ():
2323 url = ('memcache://127.0.0.1:11211/?timeout=0&'
2424 'key_prefix=cache_&key_function=foo.get_key&version=1' )
2525 url = Env .cache_url_config (url )
@@ -29,10 +29,29 @@ def test_base_options_parsing():
2929 assert url ['TIMEOUT' ] == 0
3030 assert url ['VERSION' ] == 1
3131
32- url = 'redis://127.0.0.1:6379/?timeout=None'
33- url = Env .cache_url_config (url )
3432
35- assert url ['TIMEOUT' ] is None
33+ @pytest .mark .parametrize ('redis_driver,timeout_key' ,
34+ [
35+ ('django.core.cache.backends.redis.RedisCache' , 'timeout' ),
36+ ('django_redis.cache.RedisCache' , 'TIMEOUT' ),
37+ ],
38+ ids = [
39+ 'django' ,
40+ 'django_redis' ,
41+ ],
42+ )
43+ def test_base_options_parsing_redis (redis_driver , timeout_key ):
44+ mocked_cache_schemes = Env .CACHE_SCHEMES .copy ()
45+ mocked_cache_schemes .update ({
46+ 'rediscache' : redis_driver ,
47+ 'redis' : redis_driver ,
48+ 'rediss' : redis_driver ,
49+ })
50+ with mock .patch .object (Env , 'CACHE_SCHEMES' , mocked_cache_schemes ):
51+ url = 'redis://127.0.0.1:6379/?timeout=None'
52+ url = Env .cache_url_config (url )
53+
54+ assert url [timeout_key ] is None
3655
3756
3857@pytest .mark .parametrize (
@@ -134,27 +153,63 @@ def test_rediscache_compat(django_version, django_redis_installed):
134153 else :
135154 assert driver == redis_cache
136155
137- def test_redis_parsing ():
138- url = ('rediscache://127.0.0.1:6379/1?client_class='
139- 'django_redis.client.DefaultClient&password=secret' )
140- url = Env .cache_url_config (url )
141-
142- assert url ['BACKEND' ] == REDIS_DRIVER
143- assert url ['LOCATION' ] == 'redis://127.0.0.1:6379/1'
144- assert url ['OPTIONS' ] == {
145- 'CLIENT_CLASS' : 'django_redis.client.DefaultClient' ,
146- 'PASSWORD' : 'secret' ,
147- }
148-
149156
150- def test_redis_socket_url ():
151- url = 'redis://:redispass@/path/to/socket.sock?db=0'
152- url = Env .cache_url_config (url )
153- assert REDIS_DRIVER == url ['BACKEND' ]
154- assert url ['LOCATION' ] == 'unix://:redispass@/path/to/socket.sock'
155- assert url ['OPTIONS' ] == {
156- 'DB' : 0
157- }
157+ @pytest .mark .parametrize ('redis_driver,client_class_key,password_key' ,
158+ [
159+ ('django.core.cache.backends.redis.RedisCache' , 'client_class' , 'password' ),
160+ ('django_redis.cache.RedisCache' , 'CLIENT_CLASS' , 'PASSWORD' ),
161+ ],
162+ ids = [
163+ 'django' ,
164+ 'django_redis' ,
165+ ],
166+ )
167+ def test_redis_parsing (redis_driver , client_class_key , password_key ):
168+ mocked_cache_schemes = Env .CACHE_SCHEMES .copy ()
169+ mocked_cache_schemes .update ({
170+ 'rediscache' : redis_driver ,
171+ 'redis' : redis_driver ,
172+ 'rediss' : redis_driver ,
173+ })
174+ with mock .patch .object (Env , 'CACHE_SCHEMES' , mocked_cache_schemes ):
175+ url = ('rediscache://127.0.0.1:6379/1?client_class='
176+ 'django_redis.client.DefaultClient&password=secret' )
177+ url = Env .cache_url_config (url )
178+
179+ assert url ['BACKEND' ] == redis_driver
180+ assert url ['LOCATION' ] == 'redis://127.0.0.1:6379/1'
181+ assert url ['OPTIONS' ] == {
182+ client_class_key : 'django_redis.client.DefaultClient' ,
183+ password_key : 'secret' ,
184+ }
185+
186+
187+ @pytest .mark .parametrize ('redis_driver,db_key' ,
188+ [
189+ ('django.core.cache.backends.redis.RedisCache' , 'db' ),
190+ ('django_redis.cache.RedisCache' , 'DB' ),
191+ ],
192+ ids = [
193+ 'django' ,
194+ 'django_redis' ,
195+ ],
196+ )
197+ def test_redis_socket_url (redis_driver , db_key ):
198+ mocked_cache_schemes = Env .CACHE_SCHEMES .copy ()
199+ mocked_cache_schemes .update ({
200+ 'rediscache' : redis_driver ,
201+ 'redis' : redis_driver ,
202+ 'rediss' : redis_driver ,
203+ })
204+ with mock .patch .object (Env , 'CACHE_SCHEMES' , mocked_cache_schemes ):
205+ url = 'redis://:redispass@/path/to/socket.sock?db=0'
206+ url = Env .cache_url_config (url )
207+
208+ assert url ['BACKEND' ] == redis_driver
209+ assert url ['LOCATION' ] == 'unix://:redispass@/path/to/socket.sock'
210+ assert url ['OPTIONS' ] == {
211+ db_key : 0
212+ }
158213
159214
160215def test_options_parsing ():
0 commit comments