# -*- coding: utf-8 -*- #!/usr/bin/env python import os import unittest import dj_database_url POSTGIS_URL = 'postgis://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn' class DatabaseTestSuite(unittest.TestCase): def test_postgres_parsing(self): url = 'postgres://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.db.backends.postgresql_psycopg2' assert url['NAME'] == 'd8r82722r2kuvn' assert url['HOST'] == 'ec2-107-21-253-135.compute-1.amazonaws.com' assert url['USER'] == 'uf07k1i6d8ia0v' assert url['PASSWORD'] == 'wegauwhgeuioweg' assert url['PORT'] == 5431 def test_postgis_parsing(self): url = 'postgis://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.contrib.gis.db.backends.postgis' assert url['NAME'] == 'd8r82722r2kuvn' assert url['HOST'] == 'ec2-107-21-253-135.compute-1.amazonaws.com' assert url['USER'] == 'uf07k1i6d8ia0v' assert url['PASSWORD'] == 'wegauwhgeuioweg' assert url['PORT'] == 5431 def test_mysql_gis_parsing(self): url = 'mysqlgis://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.contrib.gis.db.backends.mysql' assert url['NAME'] == 'd8r82722r2kuvn' assert url['HOST'] == 'ec2-107-21-253-135.compute-1.amazonaws.com' assert url['USER'] == 'uf07k1i6d8ia0v' assert url['PASSWORD'] == 'wegauwhgeuioweg' assert url['PORT'] == 5431 def test_cleardb_parsing(self): url = 'mysql://bea6eb025ca0d8:69772142@us-cdbr-east.cleardb.com/heroku_97681db3eff7580?reconnect=true' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.db.backends.mysql' assert url['NAME'] == 'heroku_97681db3eff7580' assert url['HOST'] == 'us-cdbr-east.cleardb.com' assert url['USER'] == 'bea6eb025ca0d8' assert url['PASSWORD'] == '69772142' assert url['PORT'] is None def test_database_url(self): del os.environ['DATABASE_URL'] a = dj_database_url.config() assert not a os.environ['DATABASE_URL'] = 'postgres://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn' url = dj_database_url.config() assert url['ENGINE'] == 'django.db.backends.postgresql_psycopg2' assert url['NAME'] == 'd8r82722r2kuvn' assert url['HOST'] == 'ec2-107-21-253-135.compute-1.amazonaws.com' assert url['USER'] == 'uf07k1i6d8ia0v' assert url['PASSWORD'] == 'wegauwhgeuioweg' assert url['PORT'] == 5431 def test_empty_sqlite_url(self): url = 'sqlite://' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.db.backends.sqlite3' assert url['NAME'] == ':memory:' def test_memory_sqlite_url(self): url = 'sqlite://:memory:' url = dj_database_url.parse(url) assert url['ENGINE'] == 'django.db.backends.sqlite3' assert url['NAME'] == ':memory:' def test_parse_engine_setting(self): engine = 'django_mysqlpool.backends.mysqlpool' url = 'mysql://bea6eb025ca0d8:69772142@us-cdbr-east.cleardb.com/heroku_97681db3eff7580?reconnect=true' url = dj_database_url.parse(url, engine) assert url['ENGINE'] == engine def test_config_engine_setting(self): engine = 'django_mysqlpool.backends.mysqlpool' os.environ['DATABASE_URL'] = 'mysql://bea6eb025ca0d8:69772142@us-cdbr-east.cleardb.com/heroku_97681db3eff7580?reconnect=true' url = dj_database_url.config(engine=engine) assert url['ENGINE'] == engine if __name__ == '__main__': unittest.main()