From fe1420e2b0c7fc56492fa12ce6f40e640d1bbc5a Mon Sep 17 00:00:00 2001 From: Pierluca Borso Date: Thu, 12 Jan 2017 11:27:18 +0100 Subject: [PATCH 1/2] Define custom database name --- src/testing/postgresql.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/testing/postgresql.py b/src/testing/postgresql.py index 948fc3c..dafa7bf 100644 --- a/src/testing/postgresql.py +++ b/src/testing/postgresql.py @@ -39,6 +39,7 @@ class Postgresql(Database): initdb_args='-U postgres -A trust', postgres=None, postgres_args='-h 127.0.0.1 -F -c logging_collector=off', + db_name='test', pid=None, port=None, copy_data_from=None) @@ -59,7 +60,7 @@ def dsn(self, **kwargs): params.setdefault('port', self.settings['port']) params.setdefault('host', '127.0.0.1') params.setdefault('user', 'postgres') - params.setdefault('database', 'test') + params.setdefault('database', self.settings['db_name']) return params @@ -98,9 +99,9 @@ def poststart(self): with closing(pg8000.connect(**self.dsn(database='postgres'))) as conn: conn.autocommit = True with closing(conn.cursor()) as cursor: - cursor.execute("SELECT COUNT(*) FROM pg_database WHERE datname='test'") + cursor.execute("SELECT COUNT(*) FROM pg_database WHERE datname='{}'".format(self.settings['db_name'])) if cursor.fetchone()[0] <= 0: - cursor.execute('CREATE DATABASE test') + cursor.execute('CREATE DATABASE {}'.format(self.settings['db_name'])) def is_server_available(self): try: From f0cbf306a12cad4791402160da2e969d4f693e5d Mon Sep 17 00:00:00 2001 From: Pierluca Borso Date: Thu, 12 Jan 2017 12:02:42 +0100 Subject: [PATCH 2/2] Support specific PgSQL version --- src/testing/postgresql.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/testing/postgresql.py b/src/testing/postgresql.py index dafa7bf..8721ff4 100644 --- a/src/testing/postgresql.py +++ b/src/testing/postgresql.py @@ -39,6 +39,7 @@ class Postgresql(Database): initdb_args='-U postgres -A trust', postgres=None, postgres_args='-h 127.0.0.1 -F -c logging_collector=off', + postgres_version=None, db_name='test', pid=None, port=None, @@ -48,11 +49,11 @@ class Postgresql(Database): def initialize(self): self.initdb = self.settings.pop('initdb') if self.initdb is None: - self.initdb = find_program('initdb', ['bin']) + self.initdb = find_program('initdb', ['bin'], self.settings['postgres_version']) self.postgres = self.settings.pop('postgres') if self.postgres is None: - self.postgres = find_program('postgres', ['bin']) + self.postgres = find_program('postgres', ['bin'], self.settings['postgres_version']) def dsn(self, **kwargs): # "database=test host=localhost user=postgres" @@ -131,15 +132,17 @@ def search_server(self): skipIfNotFound = skipIfNotInstalled = PostgresqlSkipIfNotInstalledDecorator() -def find_program(name, subdirs): +def find_program(name, subdirs, version=None): path = get_path_of(name) if path: - return path + if not version or version in path: + return path for base_dir in SEARCH_PATHS: for subdir in subdirs: path = os.path.join(base_dir, subdir, name) if os.path.exists(path): - return path + if not version or version in path: + return path raise RuntimeError("command not found: %s" % name)