def test_base_options_parsing(self): url = "memcache://127.0.0.1:11211/?timeout=0&key_prefix=cache_&key_function=foo.get_key&version=1" url = Env.cache_url_config(url) self.assertEqual(url["KEY_PREFIX"], "cache_") self.assertEqual(url["KEY_FUNCTION"], "foo.get_key") self.assertEqual(url["TIMEOUT"], 0) self.assertEqual(url["VERSION"], 1) url = "redis://127.0.0.1:6379/?timeout=None" url = Env.cache_url_config(url) self.assertEqual(url["TIMEOUT"], None)
def test_base_options_parsing(self): url = 'memcache://127.0.0.1:11211/?timeout=0&key_prefix=cache_&key_function=foo.get_key&version=1' url = Env.cache_url_config(url) self.assertEqual(url['KEY_PREFIX'], 'cache_') self.assertEqual(url['KEY_FUNCTION'], 'foo.get_key') self.assertEqual(url['TIMEOUT'], 0) self.assertEqual(url['VERSION'], 1) url = 'redis://127.0.0.1:6379/?timeout=None' url = Env.cache_url_config(url) self.assertEqual(url['TIMEOUT'], None)
def test_memcache_pylib_parsing(self): url = 'pymemcache://127.0.0.1:11211' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.memcached.PyLibMCCache') self.assertEqual(url['LOCATION'], '127.0.0.1:11211')
def test_dbcache_parsing(self): url = 'dbcache://my_cache_table' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.db.DatabaseCache') self.assertEqual(url['LOCATION'], 'my_cache_table')
def test_locmem_named_parsing(self): url = 'locmemcache://unique-snowflake' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.locmem.LocMemCache') self.assertEqual(url['LOCATION'], 'unique-snowflake')
def test_dummycache_parsing(self): url = 'dummycache://' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.dummy.DummyCache') self.assertEqual(url['LOCATION'], '')
def test_redis_socket_url(self): url = 'redis://:redispass@/path/to/socket.sock?db=0' url = Env.cache_url_config(url) self.assertEqual(REDIS_DRIVER, url['BACKEND']) self.assertEqual(url['LOCATION'], 'unix://:redispass@/path/to/socket.sock') self.assertEqual(url['OPTIONS'], {'DB': 0})
def test_redis_socket_url(self): url = 'redis://:redispass@/path/to/socket.sock?db=0' url = Env.cache_url_config(url) self.assertEqual(REDIS_DRIVER, url['BACKEND']) self.assertEqual(url['LOCATION'], 'unix://:redispass@/path/to/socket.sock') self.assertEqual(url['OPTIONS'], { 'DB': 0 })
def test_filecache_parsing(self): url = 'filecache:///var/tmp/django_cache' url = Env.cache_url_config(url) self.assertEqual( url['BACKEND'], 'django.core.cache.backends.filebased.FileBasedCache') self.assertEqual(url['LOCATION'], '/var/tmp/django_cache')
def test_memcache_socket_parsing(self): url = 'memcache:///tmp/memcached.sock' url = Env.cache_url_config(url) self.assertEqual( url['BACKEND'], 'django.core.cache.backends.memcached.MemcachedCache') self.assertEqual(url['LOCATION'], 'unix:/tmp/memcached.sock')
def test_filecache_windows_parsing(self): url = 'filecache://C:/foo/bar' url = Env.cache_url_config(url) self.assertEqual( url['BACKEND'], 'django.core.cache.backends.filebased.FileBasedCache') self.assertEqual(url['LOCATION'], 'C:/foo/bar')
def test_memcache_pylib_parsing(self): url = "pymemcache://127.0.0.1:11211" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.memcached.PyLibMCCache" ) self.assertEqual(url["LOCATION"], "127.0.0.1:11211")
def test_filecache_parsing(self): url = "filecache:///var/tmp/django_cache" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.filebased.FileBasedCache" ) self.assertEqual(url["LOCATION"], "/var/tmp/django_cache")
def test_memcache_socket_parsing(self): url = "memcache:///tmp/memcached.sock" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.memcached.MemcachedCache" ) self.assertEqual(url["LOCATION"], "unix:/tmp/memcached.sock")
def test_filecache_windows_parsing(self): url = "filecache://C:/foo/bar" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.filebased.FileBasedCache" ) self.assertEqual(url["LOCATION"], "C:/foo/bar")
def test_locmem_named_parsing(self): url = "locmemcache://unique-snowflake" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.locmem.LocMemCache" ) self.assertEqual(url["LOCATION"], "unique-snowflake")
def test_custom_backend(self): url = "memcache://127.0.0.1:5400?foo=option&bars=9001" backend = "django_redis.cache.RedisCache" url = Env.cache_url_config(url, backend) self.assertEqual(url["BACKEND"], backend) self.assertEqual(url["LOCATION"], "127.0.0.1:5400") self.assertEqual(url["OPTIONS"], {"FOO": "option", "BARS": 9001,})
def test_memcache_multiple_parsing(self): url = 'memcache://172.19.26.240:11211,172.19.26.242:11212' url = Env.cache_url_config(url) self.assertEqual( url['BACKEND'], 'django.core.cache.backends.memcached.MemcachedCache') self.assertEqual(url['LOCATION'], ['172.19.26.240:11211', '172.19.26.242:11212'])
def test_redis_multi_location_parsing(self): url = "rediscache://host1:6379,host2:6379,host3:9999/1" url = Env.cache_url_config(url) self.assertEqual(url["BACKEND"], REDIS_DRIVER) self.assertEqual( url["LOCATION"], ["redis://host1:6379/1", "redis://host2:6379/1", "redis://host3:9999/1",], )
def test_redis_parsing(self): url = 'rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=secret' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], REDIS_DRIVER) self.assertEqual(url['LOCATION'], 'redis://127.0.0.1:6379/1') self.assertEqual(url['OPTIONS'], { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': '******', })
def test_redis_parsing(self): url = 'rediscache://127.0.0.1:6379:1?client_class=django_redis.client.DefaultClient&password=secret' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django_redis.cache.RedisCache') self.assertEqual(url['LOCATION'], '127.0.0.1:6379:1') self.assertEqual(url['OPTIONS'], { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': '******', })
def test_redis_multi_location_parsing(self): url = 'rediscache://host1:6379,host2:6379,host3:9999/1' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], REDIS_DRIVER) self.assertEqual(url['LOCATION'], [ 'redis://host1:6379/1', 'redis://host2:6379/1', 'redis://host3:9999/1', ])
def test_options_parsing(self): url = "filecache:///var/tmp/django_cache?timeout=60&max_entries=1000&cull_frequency=0" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.filebased.FileBasedCache" ) self.assertEqual(url["LOCATION"], "/var/tmp/django_cache") self.assertEqual(url["TIMEOUT"], 60) self.assertEqual(url["OPTIONS"], {"MAX_ENTRIES": 1000, "CULL_FREQUENCY": 0,})
def test_memcache_multiple_parsing(self): url = "memcache://172.19.26.240:11211,172.19.26.242:11212" url = Env.cache_url_config(url) self.assertEqual( url["BACKEND"], "django.core.cache.backends.memcached.MemcachedCache" ) self.assertEqual( url["LOCATION"], ["172.19.26.240:11211", "172.19.26.242:11212"] )
def test_options_parsing(self): url = 'filecache:///var/tmp/django_cache?timeout=60&max_entries=1000&cull_frequency=0' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.filebased.FileBasedCache') self.assertEqual(url['LOCATION'], '/var/tmp/django_cache') self.assertEqual(url['TIMEOUT'], 60) self.assertEqual(url['OPTIONS'], { 'MAX_ENTRIES': 1000, 'CULL_FREQUENCY': 0, })
def test_custom_backend(self): url = 'memcache://127.0.0.1:5400?foo=option&bars=9001' backend = 'django_redis.cache.RedisCache' url = Env.cache_url_config(url, backend) self.assertEqual(url['BACKEND'], backend) self.assertEqual(url['LOCATION'], '127.0.0.1:5400') self.assertEqual(url['OPTIONS'], { 'FOO': 'option', 'BARS': 9001, })
def test_redis_parsing(self): url = "rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=secret" url = Env.cache_url_config(url) self.assertEqual(url["BACKEND"], REDIS_DRIVER) self.assertEqual(url["LOCATION"], "redis://127.0.0.1:6379/1") self.assertEqual( url["OPTIONS"], { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "******", }, )
def test_redis_socket_parsing(self): url = 'rediscache:///path/to/socket:1' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django_redis.cache.RedisCache') self.assertEqual(url['LOCATION'], 'unix:/path/to/socket:1')
def test_redis_with_password_parsing(self): url = "rediscache://:[email protected]:6379/0" url = Env.cache_url_config(url) self.assertEqual(REDIS_DRIVER, url["BACKEND"]) self.assertEqual(url["LOCATION"], "redis://:[email protected]:6379/0")
def test_memcache_socket_parsing(self): url = 'memcache:///tmp/memcached.sock' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.memcached.MemcachedCache') self.assertEqual(url['LOCATION'], 'unix:/tmp/memcached.sock')
def test_filecache_parsing(self): url = 'filecache:///var/tmp/django_cache' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.filebased.FileBasedCache') self.assertEqual(url['LOCATION'], '/var/tmp/django_cache')
def test_redis_with_password_parsing(self): url = 'rediscache://:[email protected]:6379/0' url = Env.cache_url_config(url) self.assertEqual(REDIS_DRIVER, url['BACKEND']) self.assertEqual(url['LOCATION'], 'redis://:[email protected]:6379/0')
def test_unknown_backend(self): url = "unknown-scheme://127.0.0.1:1000" with self.assertRaises(ImproperlyConfigured) as cm: Env.cache_url_config(url) self.assertEqual(str(cm.exception), "Invalid cache schema unknown-scheme")
def test_memcache_multiple_parsing(self): url = 'memcache://172.19.26.240:11211,172.19.26.242:11212' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.memcached.MemcachedCache') self.assertEqual(url['LOCATION'], ['172.19.26.240:11211', '172.19.26.242:11212'])
def test_redis_socket_url(self): url = "redis://:redispass@/path/to/socket.sock?db=0" url = Env.cache_url_config(url) self.assertEqual(REDIS_DRIVER, url["BACKEND"]) self.assertEqual(url["LOCATION"], "unix://:redispass@/path/to/socket.sock") self.assertEqual(url["OPTIONS"], {"DB": 0})
def test_rediss_parsing(self): url = "rediss://127.0.0.1:6379/1" url = Env.cache_url_config(url) self.assertEqual(url["BACKEND"], REDIS_DRIVER) self.assertEqual(url["LOCATION"], "rediss://127.0.0.1:6379/1")
def test_filecache_windows_parsing(self): url = 'filecache://C:/foo/bar' url = Env.cache_url_config(url) self.assertEqual(url['BACKEND'], 'django.core.cache.backends.filebased.FileBasedCache') self.assertEqual(url['LOCATION'], 'C:/foo/bar')
def test_empty_url_is_mapped_to_empty_config(self): self.assertEqual(Env.cache_url_config(""), {}) self.assertEqual(Env.cache_url_config(None), {})