Example #1
0
    def _connection_factory(self):
        """Create a Gadfly DBI connection based on the DSN.

        Only local (filesystem-based) Gadfly connections are supported
        at this moment."""

        conn_info = parseDSN(self.dsn)
        if conn_info['host'] != '' or conn_info['username'] != '' or \
           conn_info['port'] != '' or conn_info['password'] != '':
            raise DatabaseAdapterError(
                "DSN for GadflyDA must be of the form "
                "dbi://dbname or dbi://dbname;dir=directory.")

        connection = conn_info['dbname']
        dir = os.path.join(getGadflyRoot(),
                           conn_info['parameters'].get('dir', connection))

        if not os.path.isdir(dir):
            raise DatabaseAdapterError('Not a directory ' + dir)

        if not os.path.exists(os.path.join(dir, connection + ".gfd")):
            db = gadfly.gadfly()
            db.startup(connection, dir)
        else:
            db = gadfly.gadfly(connection, dir)

        return db
Example #2
0
    def _connection_factory(self):
        """Create a Gadfly DBI connection based on the DSN.

        Only local (filesystem-based) Gadfly connections are supported
        at this moment."""

        conn_info = parseDSN(self.dsn)
        if conn_info['host'] != '' or conn_info['username'] != '' or \
           conn_info['port'] != '' or conn_info['password'] != '':
            raise DatabaseAdapterError(
                "DSN for GadflyDA must be of the form "
                "dbi://dbname or dbi://dbname;dir=directory."
                )

        connection = conn_info['dbname']
        dir = os.path.join(getGadflyRoot(),
                           conn_info['parameters'].get('dir', connection))

        if not os.path.isdir(dir):
            raise DatabaseAdapterError('Not a directory ' + dir)

        if not os.path.exists(os.path.join(dir, connection + ".gfd")):
            db = gadfly.gadfly()
            db.startup(connection, dir)
        else:
            db = gadfly.gadfly(connection, dir)

        return db
 def testDBNameOnly(self):
     dsn = 'dbi://test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '',
         'password': '',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
 def testUserPassword(self):
     dsn = 'dbi://mike:muster/test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '******',
         'password': '******',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
 def testAllOptions(self):
     dsn = 'dbi://*****:*****@bohr:5432/test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '******',
         'password': '******',
         'host': 'bohr',
         'port': '5432'
     }
     self.assertEqual(result, parseDSN(dsn))
 def testUserAndHostWithoutPort(self):
     dsn = 'dbi://mike@bohr/test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '******',
         'password': '',
         'host': 'bohr',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
 def testPasswordWithColon(self):
     dsn = 'dbi://mike:before:after/test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '******',
         'password': '******',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
 def testDBNameWithSpecialCharacters(self):
     dsn = 'dbi://test%2Fmore+'
     result = {
         'parameters': {},
         'dbname': 'test/more ',
         'username': '',
         'password': '',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
 def testUserPasswordWithSpecialCharacters(self):
     dsn = 'dbi://m+i+k+e:m%7Bu%7Dster/test'
     result = {
         'parameters': {},
         'dbname': 'test',
         'username': '******',
         'password': '******',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
Example #10
0
 def _connection_factory(self):
     """Create a psycopg2 DBI connection based on the DSN"""
     self.registerTypes()
     conn_info = parseDSN(self.dsn)
     conn_list = []
     for dsnname, optname in dsn2option_mapping.iteritems():
         if conn_info[dsnname]:
             conn_list.append('%s=%s' % (optname, conn_info[dsnname]))
     conn_str = ' '.join(conn_list)
     connection = psycopg2.connect(conn_str)
     connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
     return connection
Example #11
0
 def _connection_factory(self):
     """Create a psycopg2 DBI connection based on the DSN"""
     self.registerTypes()
     conn_info = parseDSN(self.dsn)
     conn_list = []
     for dsnname, optname in dsn2option_mapping.items():
         if conn_info[dsnname]:
             conn_list.append('%s=%s' % (optname, conn_info[dsnname]))
     conn_str = ' '.join(conn_list)
     connection = psycopg2.connect(conn_str)
     connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
     return connection
Example #12
0
 def testParamsWithSpecialCharacters(self):
     dsn = 'dbi://test;param%40=value%21;param%23=value%24'
     result = {
         'parameters': {
             'param@': 'value!',
             'param#': 'value$'
         },
         'dbname': 'test',
         'username': '',
         'password': '',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
Example #13
0
 def testAllOptionsAndParams(self):
     dsn = 'dbi://*****:*****@bohr:5432/test;param1=value1;param2=value2'
     result = {
         'parameters': {
             'param1': 'value1',
             'param2': 'value2'
         },
         'dbname': 'test',
         'username': '******',
         'password': '******',
         'host': 'bohr',
         'port': '5432'
     }
     self.assertEqual(result, parseDSN(dsn))
Example #14
0
 def testDBNameAndParams(self):
     dsn = 'dbi://test;param1=value1;param2=value2'
     result = {
         'parameters': {
             'param1': 'value1',
             'param2': 'value2'
         },
         'dbname': 'test',
         'username': '',
         'password': '',
         'host': '',
         'port': ''
     }
     self.assertEqual(result, parseDSN(dsn))
Example #15
0
    def _connection_factory(self):
        """Create a MySQLdb DBI connection based on the DSN"""

        conn_info = parseDSN(self.dsn)

        connection = MySQLdb.Connect(db=conn_info['dbname'],
                            host=conn_info['host'],
                            user=conn_info['username'],
                            passwd=conn_info['password'],
                            port=int(conn_info['port'] or '3306'))

        if self.__stringConverter.encoding != self.getEncoding():
            #avoid resetting this everytime, otherwise the adapter
            #gets modified on each connection and that causes ZODB conflicts
            self.__stringConverter = MySQLStringConverter(self.getEncoding())
        return connection
Example #16
0
def connect(dsn=None,host=None,database=None,username=None,password=None,
        port=5050,trace=False):
    """ we hope to have a dsn formatted like
        dbi://user:passwd@host:port/dbname
    """
    if dsn:
        conn_info = parseDSN(dsn)
    if conn_info['host']:
        host = conn_info['host']
    if conn_info['port']:
        port = int(conn_info['port'])
    if conn_info['username']:
        username = (conn_info['username'])
    if conn_info['password']:
        password = (conn_info['password'])
    if conn_info['dbname']:
        database = (conn_info['dbname'])
    return SednaProtocol(host,database,username,password,port,trace)
Example #17
0
def connect(dsn=None,
            host=None,
            database=None,
            username=None,
            password=None,
            port=5050,
            trace=False):
    """ we hope to have a dsn formatted like
        dbi://user:passwd@host:port/dbname
    """
    if dsn:
        conn_info = parseDSN(dsn)
    if conn_info['host']:
        host = conn_info['host']
    if conn_info['port']:
        port = int(conn_info['port'])
    if conn_info['username']:
        username = (conn_info['username'])
    if conn_info['password']:
        password = (conn_info['password'])
    if conn_info['dbname']:
        database = (conn_info['dbname'])
    return SednaProtocol(host, database, username, password, port, trace)
Example #18
0
 def testAllOptionsAndParams(self):
     dsn = 'dbi://*****:*****@bohr:5432/test;param1=value1;param2=value2'
     result = {'parameters': {'param1': 'value1', 'param2': 'value2'},
               'dbname': 'test', 'username': '******', 'password': '******',
               'host': 'bohr', 'port': '5432'}
     self.assertEqual(result, parseDSN(dsn))
Example #19
0
 def testAllOptions(self):
     dsn = 'dbi://*****:*****@bohr:5432/test'
     result = {'parameters': {}, 'dbname': 'test', 'username': '******',
               'password': '******', 'host': 'bohr', 'port': '5432'}
     self.assertEqual(result, parseDSN(dsn))
Example #20
0
 def testUserPasswordAndHostWithoutPort(self):
     dsn = 'dbi://*****:*****@bohr/test'
     result = {'parameters': {}, 'dbname': 'test', 'username': '******',
               'password': '******', 'host': 'bohr', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #21
0
 def testParamsWithSpecialCharacters(self):
     dsn = 'dbi://test;param%40=value%21;param%23=value%24'
     result = {'parameters': {'param@': 'value!', 'param#': 'value$'},
               'dbname': 'test', 'username': '', 'password': '',
               'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #22
0
 def testUserPasswordAndParams(self):
     dsn = 'dbi://mike:muster/test;param1=value1;param2=value2'
     result = {'parameters': {'param1': 'value1', 'param2': 'value2'},
               'dbname': 'test', 'username': '******', 'password': '******',
               'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #23
0
 def testPasswordWithColon(self):
     dsn = 'dbi://mike:before:after/test'
     result = {'parameters': {}, 'dbname': 'test', 'username': '******',
               'password': '******', 'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #24
0
 def testUserPasswordWithSpecialCharacters(self):
     dsn = 'dbi://m+i+k+e:m%7Bu%7Dster/test'
     result = {'parameters': {}, 'dbname': 'test', 'username': '******',
               'password': '******', 'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #25
0
 def testUser(self):
     dsn = 'dbi://mike/test'
     result = {'parameters': {}, 'dbname': 'test', 'username': '******',
               'password': '', 'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))
Example #26
0
 def testDBNameWithSpecialCharacters(self):
     dsn = 'dbi://test%2Fmore+'
     result = {'parameters': {}, 'dbname': 'test/more ', 'username': '',
               'password': '', 'host': '', 'port': ''}
     self.assertEqual(result, parseDSN(dsn))