From da132ca1fcc6b408652c923bf0fd353f67644cb4 Mon Sep 17 00:00:00 2001 From: Oleksii Kliukin Date: Wed, 2 Sep 2015 15:20:16 +0200 Subject: [PATCH 1/2] Do not rely on env vars for superuser role name. Environment variables may not be set in Docker. Instead, obtain the superuser role from the database. --- helpers/postgresql.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/helpers/postgresql.py b/helpers/postgresql.py index 695e45c1..8c9fd3c9 100644 --- a/helpers/postgresql.py +++ b/helpers/postgresql.py @@ -354,7 +354,8 @@ primary_conninfo = '{}' self.query('CREATE ROLE "{0}" WITH LOGIN SUPERUSER PASSWORD %s'.format( self.superuser['username']), self.superuser['password']) else: - self.query('ALTER ROLE "{0}" WITH PASSWORD %s'.format(os.environ['USER']), self.superuser['password']) + rolsuper = self.query("""SELECT rolname FROM pg_authid WHERE rolsuper = 't'""").fetchone()[0] + self.query('ALTER ROLE "{0}" WITH PASSWORD %s'.format(rolsuper), self.superuser['password']) if self.admin: self.query('CREATE ROLE "{0}" WITH LOGIN CREATEDB CREATEROLE PASSWORD %s'.format( self.admin['username']), self.admin['password']) From a670b598f4416b0e99acd7442e5a51295a5daaa3 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Wed, 2 Sep 2015 16:48:40 +0200 Subject: [PATCH 2/2] Implement unit test for reap_children function --- tests/test_utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/test_utils.py b/tests/test_utils.py index 76dbff66..312277b6 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -2,7 +2,7 @@ import os import time import unittest -from helpers.utils import sigchld_handler, sigterm_handler, sleep +from helpers.utils import reap_children, sigchld_handler, sigterm_handler, sleep def nop(*args, **kwargs): @@ -34,10 +34,11 @@ class TestUtils(unittest.TestCase): def test_sigterm_handler(self): self.assertRaises(SystemExit, sigterm_handler, None, None) - def test_sigchld_handler(self): - sigchld_handler(None, None) + def test_reap_children(self): + reap_children() os.waitpid = os_waitpid sigchld_handler(None, None) + reap_children() def test_sleep(self): time.sleep = time_sleep