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 _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))
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
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
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))
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))
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))
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
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)
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)
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))
def testAllOptions(self): dsn = 'dbi://*****:*****@bohr:5432/test' result = {'parameters': {}, 'dbname': 'test', 'username': '******', 'password': '******', 'host': 'bohr', 'port': '5432'} self.assertEqual(result, parseDSN(dsn))
def testUserPasswordAndHostWithoutPort(self): dsn = 'dbi://*****:*****@bohr/test' result = {'parameters': {}, 'dbname': 'test', 'username': '******', 'password': '******', 'host': 'bohr', 'port': ''} self.assertEqual(result, parseDSN(dsn))
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))
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))
def testPasswordWithColon(self): dsn = 'dbi://mike:before:after/test' result = {'parameters': {}, 'dbname': 'test', '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))
def testUser(self): dsn = 'dbi://mike/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))