def test_assemble_dsn_quoting(self): self.assertEqual( ["dbname='/trac'", "password='******'", "user='******'"], sorted(assemble_pg_dsn('/trac', 'user', 'pass').split(' '))) self.assertEqual( ["dbname='/trac'", r"password='******'ss'", "user='******'"], sorted(assemble_pg_dsn('/trac', 'user', "pa'ss").split(' '))) self.assertEqual( ["dbname='/trac'", r"password='******'", "user='******'"], sorted(assemble_pg_dsn('/trac', 'user', r'pa\ss').split(' '))) self.assertEqual( ["dbname='/trac'", r"password='******'ss'", "user='******'"], sorted(assemble_pg_dsn('/trac', 'user', r"pa\'ss").split(' ')))
def test_assemble_dsn(self): values = [ {'path': 't', 'user': '******'}, {'path': 't', 'password': '******'}, {'path': 't', 'host': 't'}, {'path': 't', 'port': 't'}, {'path': 't', 'password': '******', 'user': '******'}, {'path': 't', 'host': 't', 'user': '******'}, {'path': 't', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******'}, {'path': 't', 'password': '******', 'port': 't'}, {'path': 't', 'host': 't', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******', 'user': '******'}, {'path': 't', 'password': '******', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******', 'port': 't'}, ] for orig in values: dsn = assemble_pg_dsn(**orig) for k, v in orig.iteritems(): orig[k] = "'%s'" % v continue orig['dbname'] = "'t'" del orig['path'] new_values = {'dbname': "'t'"} for key_value in dsn.split(' '): k, v = key_value.split('=') new_values[k] = v continue self.assertEqual(new_values, orig) continue
def test_assemble_dsn(self): values = [ {'path': 't', 'user': '******'}, {'path': 't', 'password': '******'}, {'path': 't', 'host': 't'}, {'path': 't', 'port': 't'}, {'path': 't', 'password': '******', 'user': '******'}, {'path': 't', 'host': 't', 'user': '******'}, {'path': 't', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******'}, {'path': 't', 'password': '******', 'port': 't'}, {'path': 't', 'host': 't', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******', 'user': '******'}, {'path': 't', 'password': '******', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'user': '******', 'port': 't'}, {'path': 't', 'host': 't', 'password': '******', 'port': 't'}, ] for orig in values: dsn = assemble_pg_dsn(**orig) for k, v in orig.items(): orig[k] = "'%s'" % v continue orig['dbname'] = "'t'" del orig['path'] new_values = {'dbname': "'t'"} for key_value in dsn.split(' '): k, v = key_value.split('=') new_values[k] = v continue self.assertEqual(new_values, orig) continue
def PostgreSQLConnection__init__(self, path, log=None, user=None, password=None, host=None, port=None, params={}): if path.startswith('/'): path = path[1:] if 'host' in params: host = params['host'] cnx = psycopg2.connect(assemble_pg_dsn(path, user, password, host, port)) cnx.set_client_encoding('UNICODE') try: self.schema = None if 'schema' in params: self.schema = params['schema'] cnx.cursor().execute('SET search_path TO %s', (self.schema,)) cnx.commit() # except (DataError, ProgrammingError): except PGSchemaError: cnx.rollback() except DataError: cnx.rollback() ConnectionWrapper.__init__(self, cnx, log)