コード例 #1
0
    def test_unix_socket_parsing(self):
        url = db.parse('postgres://%2Fvar%2Frun%2Fpostgresql/d8r82722r2kuvn')
        self.assertEqual(url['ENGINE'], 'django.db.backends.postgresql')
        self.assertEqual(url['NAME'], 'd8r82722r2kuvn')
        self.assertEqual(url['HOST'], '/var/run/postgresql')
        self.assertEqual(url['USER'], '')
        self.assertEqual(url['PASSWORD'], '')
        self.assertEqual(url['PORT'], '')

        url = db.parse('postgres://C%3A%2Fvar%2Frun%2Fpostgresql/d8r82722r2kuvn')
        self.assertEqual(url['ENGINE'], 'django.db.backends.postgresql')
        self.assertEqual(url['HOST'], 'C:/var/run/postgresql')
        self.assertEqual(url['USER'], '')
        self.assertEqual(url['PASSWORD'], '')
        self.assertEqual(url['PORT'], '')
コード例 #2
0
 def test_databases(self):
     result = db.parse({
         'default': 'sqlite://:memory:',
         'postgresql': 'postgres://uf07k1i6d8ia0v:@:5435/d8r82722r2kuvn',
         'mysql': {
             'ENGINE': 'django.db.backends.mysql',
             'NAME': 'd8r82722r2kuvn',
             'HOST': 'ec2-107-21-253-135.compute-1.amazonaws.com',
             'USER': '******',
             'PASSWORD': '******',
             'PORT': 3306,
         },
     })
     self.assertEqual(result['default']['ENGINE'], 'django.db.backends.sqlite3')
     self.assertEqual(result['default']['NAME'], ':memory:')
     self.assertEqual(result['postgresql']['ENGINE'], 'django.db.backends.postgresql')
     self.assertEqual(result['postgresql']['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(result['postgresql']['HOST'], '')
     self.assertEqual(result['postgresql']['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(result['postgresql']['PASSWORD'], '')
     self.assertEqual(result['postgresql']['PORT'], 5435)
     self.assertEqual(result['mysql']['ENGINE'], 'django.db.backends.mysql')
     self.assertEqual(result['mysql']['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(result['mysql']['HOST'], 'ec2-107-21-253-135.compute-1.amazonaws.com')
     self.assertEqual(result['mysql']['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(result['mysql']['PASSWORD'], 'wegauwhgeuioweg')
     self.assertEqual(result['mysql']['PORT'], 3306)
コード例 #3
0
 def test_network_parsing(self):
     url = db.parse('postgres://uf07k1i6d8ia0v:@:5435/d8r82722r2kuvn')
     self.assertEqual(url['ENGINE'], 'django.db.backends.postgresql')
     self.assertEqual(url['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(url['HOST'], '')
     self.assertEqual(url['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(url['PASSWORD'], '')
     self.assertEqual(url['PORT'], 5435)
コード例 #4
0
 def test_parsing_with_special_characters(self):
     url = db.parse('postgres://%23user:%[email protected]:5431/%23database')
     self.assertEqual(url['ENGINE'], 'django.db.backends.postgresql')
     self.assertEqual(url['NAME'], '#database')
     self.assertEqual(url['HOST'], 'ec2-107-21-253-135.compute-1.amazonaws.com')
     self.assertEqual(url['USER'], '#user')
     self.assertEqual(url['PASSWORD'], '#password')
     self.assertEqual(url['PORT'], 5431)
コード例 #5
0
 def _test_file(self, dbname):
     url = db.parse('sqlite://{}'.format(dbname))
     self.assertEqual(url['ENGINE'], 'django.db.backends.sqlite3')
     self.assertEqual(url['NAME'], dbname)
     self.assertEqual(url['HOST'], '')
     self.assertEqual(url['USER'], '')
     self.assertEqual(url['PASSWORD'], '')
     self.assertEqual(url['PORT'], '')
     self.assertDictEqual(url['OPTIONS'], {})
コード例 #6
0
 def test_dsn_parsing(self):
     dsn = ('(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)'
            '(HOST=oraclehost)(PORT=1521)))'
            '(CONNECT_DATA=(SID=hr)))')
     url = db.parse('oracle://*****:*****@/' + dsn)
     self.assertEqual(url['ENGINE'], 'django.db.backends.oracle')
     self.assertEqual(url['USER'], 'scott')
     self.assertEqual(url['PASSWORD'], 'tiger')
     self.assertEqual(url['HOST'], '')
     self.assertEqual(url['PORT'], '')
コード例 #7
0
 def test_parsing(self):
     if self.SCHEME is None:
         return
     for value, (user, passw, host, port, database, options) in GENERIC_TESTS:
         value = '{scheme}://{value}'.format(scheme=self.SCHEME, value=value)
         with self.subTest(value=value):
             result = db.parse(value)
             self.assertEqual(result['NAME'], database)
             self.assertEqual(result['HOST'], host)
             self.assertEqual(result['USER'], user)
             self.assertEqual(result['PASSWORD'], passw)
             self.assertEqual(result['PORT'], port if not self.STRING_PORTS else str(port))
             self.assertDictEqual(result['OPTIONS'], options)
コード例 #8
0
 def test_gis_search_path_parsing(self):
     url = db.parse(
         'postgis://*****:*****@ec2-107-21-253-135.compute-1.amazonaws.com:5431'
         '/d8r82722r2kuvn?currentSchema=otherschema'
     )
     self.assertEqual(url['ENGINE'], 'django.contrib.gis.db.backends.postgis')
     self.assertEqual(url['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(url['HOST'], 'ec2-107-21-253-135.compute-1.amazonaws.com')
     self.assertEqual(url['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(url['PASSWORD'], 'wegauwhgeuioweg')
     self.assertEqual(url['PORT'], 5431)
     self.assertEqual(url['OPTIONS']['options'], '-c search_path=otherschema')
     self.assertNotIn('currentSchema', url['OPTIONS'])
コード例 #9
0
 def test_with_sslca_options(self):
     url = db.parse(
         'mysql://*****:*****@ec2-107-21-253-135.compute-1.amazonaws.com:3306/d8r82722r2kuvn'
         '?ssl-ca=rds-combined-ca-bundle.pem')
     self.assertEqual(url['ENGINE'], 'django.db.backends.mysql')
     self.assertEqual(url['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(url['HOST'],
                      'ec2-107-21-253-135.compute-1.amazonaws.com')
     self.assertEqual(url['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(url['PASSWORD'], 'wegauwhgeuioweg')
     self.assertEqual(url['PORT'], 3306)
     self.assertEqual(url['OPTIONS'],
                      {'ssl': {
                          'ca': 'rds-combined-ca-bundle.pem'
                      }})
コード例 #10
0
 def test_database_url_with_options(self):
     # Test full options
     url = db.parse(
         'postgres://*****:*****@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn'
         '?sslrootcert=rds-combined-ca-bundle.pem&sslmode=verify-full'
     )
     self.assertEqual(url['ENGINE'], 'django.db.backends.postgresql')
     self.assertEqual(url['NAME'], 'd8r82722r2kuvn')
     self.assertEqual(url['HOST'], 'ec2-107-21-253-135.compute-1.amazonaws.com')
     self.assertEqual(url['USER'], 'uf07k1i6d8ia0v')
     self.assertEqual(url['PASSWORD'], 'wegauwhgeuioweg')
     self.assertEqual(url['PORT'], 5431)
     self.assertEqual(url['OPTIONS'], {
         'sslrootcert': 'rds-combined-ca-bundle.pem',
         'sslmode': 'verify-full'
     })
コード例 #11
0
 def test_memory_url(self):
     url = db.parse('sqlite://:memory:')
     self.assertEqual(url['ENGINE'], 'django.db.backends.sqlite3')
     self.assertEqual(url['NAME'], ':memory:')