mirror of
https://github.com/jazzband/dj-database-url.git
synced 2026-03-16 22:20:24 +00:00
Add mysqlgis url scheme which uses django.contrib.gis.db.backends.mysql, add a test, and update the README.
104 lines
4 KiB
Python
104 lines
4 KiB
Python
# -*- 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()
|