From 6e4ffaf394dee325b901041de61dde03be1b97ae Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Fri, 17 Jun 2016 14:48:51 -0700 Subject: [PATCH] add Redis support --- dj_database_url.py | 2 ++ setup.py | 2 +- test_dj_database_url.py | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/dj_database_url.py b/dj_database_url.py index 2fbe4b8..53a707b 100644 --- a/dj_database_url.py +++ b/dj_database_url.py @@ -21,6 +21,7 @@ urlparse.uses_netloc.append('spatialite') urlparse.uses_netloc.append('sqlite') urlparse.uses_netloc.append('oracle') urlparse.uses_netloc.append('oraclegis') +urlparse.uses_netloc.append('redis') DEFAULT_ENV = 'DATABASE_URL' @@ -37,6 +38,7 @@ SCHEMES = { 'sqlite': 'django.db.backends.sqlite3', 'oracle': 'django.db.backends.oracle', 'oraclegis': 'django.contrib.gis.db.backends.oracle', + 'redis': "django_redis.cache.RedisCache", } diff --git a/setup.py b/setup.py index c7232fd..f3d19b3 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ from setuptools import setup setup( name='dj-database-url', - version='0.4.1', + version='0.4.1-jm1', url='https://github.com/kennethreitz/dj-database-url', license='BSD', author='Kenneth Reitz', diff --git a/test_dj_database_url.py b/test_dj_database_url.py index e57232d..d3955de 100644 --- a/test_dj_database_url.py +++ b/test_dj_database_url.py @@ -257,6 +257,29 @@ class DatabaseTestSuite(unittest.TestCase): assert url['HOST'] == '' assert url['PORT'] == '' + def test_redis_parsing_max(self): + url = "redis://:mypassword@myhost:123/my-db-number?myoption=myvalue]" + assert dj_database_url.parse(url) == { + 'ENGINE': 'django_redis.cache.RedisCache', + 'HOST': 'myhost', + 'NAME': 'my-db-number', + 'OPTIONS': {'myoption': 'myvalue]'}, + 'CONN_MAX_AGE': 0, + 'PASSWORD': 'mypassword', + 'PORT': 123, + 'USER': ''} + + def test_redis_parsing_min(self): + url = "redis://127.0.0.1:6379/1" + assert dj_database_url.parse(url) == { + 'ENGINE': 'django_redis.cache.RedisCache', + 'HOST': '127.0.0.1', + 'NAME': '1', + 'CONN_MAX_AGE': 0, + 'PASSWORD': '', + 'PORT': 6379, + 'USER': ''} + if __name__ == '__main__': unittest.main()