@@ -33,10 +33,10 @@ def teardown_method(self):
3333 [
3434 ("" , "user" , "pass" , "" , "" , "no_admin" ),
3535 ("" , "user1" , "pass1" , "" , "r00t" , "admin" ),
36- # ("", "", "", "postgres", "r00t", "only_admin"),
36+ ("" , "" , "" , "postgres" , "r00t" , "only_admin" ),
3737 ("-u 12345" , "user2" , "pass" , "" , "" , "no_admin_altuid" ),
3838 ("-u 12345" , "user3" , "pass1" , "" , "r00t" , "admin_altuid" ),
39- # ("-u 12345", "", "", "postgres", "r00t", "only_admin_altuid"),
39+ ("-u 12345" , "" , "" , "postgres" , "r00t" , "only_admin_altuid" ),
4040 ],
4141 )
4242 def test_run (
@@ -60,28 +60,24 @@ def test_run(
6060 POSTGRESQL_SHARED_BUFFERS = "64MB"
6161 expected_success = False
6262 expected_admin_success = False
63+ psql_user_arg = ""
64+ psql_pwd_arg = ""
65+ db_name_arg = ""
66+ admin_root_password_arg = ""
6367 if psql_user != "" :
6468 psql_user_arg = f"-e POSTGRESQL_USER={ psql_user } "
6569 expected_success = True
66- else :
67- psql_user_arg = ""
6870 if psql_password : # empty password is allowed
6971 psql_pwd_arg = f"-e POSTGRESQL_PASSWORD={ psql_password } "
70- else :
71- psql_pwd_arg = ""
72- if psql_database :
73- db_name = psql_database
74- else :
75- db_name = "db"
72+ if psql_user and psql_password :
73+ db_name_arg = "-e POSTGRESQL_DATABASE=db"
7674 if root_password == "r00t" :
7775 admin_root_password_arg = f"-e POSTGRESQL_ADMIN_PASSWORD={ root_password } "
7876 expected_admin_success = True
79- else :
80- admin_root_password_arg = ""
8177 docker_all_args = [
8278 psql_user_arg ,
8379 psql_pwd_arg ,
84- f"-e POSTGRESQL_DATABASE= { db_name } " ,
80+ db_name_arg ,
8581 admin_root_password_arg ,
8682 f"-e POSTGRESQL_MAX_CONNECTIONS={ POSTGRESQL_MAX_CONNECTIONS } " ,
8783 f"-e POSTGRESQL_MAX_PREPARED_TRANSACTIONS={ POSTGRESQL_MAX_PREPARED_TRANSACTIONS } " ,
@@ -115,30 +111,19 @@ def test_run(
115111 cmd = "psql --version" ,
116112 )
117113 assert VARS .VERSION in output
118- self .db_image .db_lib .assert_login_access (
119- container_ip = cip ,
120- username = psql_user ,
121- password = psql_password ,
122- expected_success = expected_success ,
123- )
124- self .db_image .db_lib .assert_login_access (
125- container_ip = cip ,
126- username = psql_user ,
127- password = f"{ psql_password } _foo" ,
128- expected_success = False ,
129- )
130- self .db_image .db_lib .assert_login_access (
131- container_ip = cip ,
132- username = "postgres" ,
133- password = root_password ,
134- expected_success = expected_admin_success ,
135- )
136- self .db_image .db_lib .assert_login_access (
137- container_ip = cip ,
138- username = "postgres" ,
139- password = f"{ root_password } _foo" ,
140- expected_success = False ,
141- )
114+ for user , pwd , ret_value in [
115+ (psql_user , psql_password , expected_success ),
116+ (psql_user , f"{ psql_password } _foo" , False ),
117+ ("postgres" , root_password , expected_admin_success ),
118+ ("postgres" , f"{ root_password } _foo" , False ),
119+ ]:
120+ assert self .db_image .db_lib .assert_login_access (
121+ container_ip = cip ,
122+ username = user ,
123+ password = pwd ,
124+ expected_success = ret_value ,
125+ )
126+
142127 assert self .db_image .db_lib .assert_local_access (container_id = cid )
143128 output = PodmanCLIWrapper .podman_exec_shell_command (
144129 cid_file_name = cid ,
@@ -162,16 +147,20 @@ def test_run(
162147 username = psql_user ,
163148 password = psql_password ,
164149 container_id = VARS .IMAGE_NAME ,
165- database = db_name ,
150+ database = psql_database ,
166151 sql_cmd = "-At -c 'CREATE EXTENSION \" uuid-ossp\" ;'" ,
167152 expected_output = "CREATE EXTENSION" ,
168153 )
154+ if psql_password == "" :
155+ psql_password = root_password
156+ if psql_database == "" :
157+ psql_database = "db"
169158 output = self .db_api .run_sql_command (
170159 container_ip = cip ,
171160 username = psql_user ,
172161 password = psql_password ,
173162 container_id = VARS .IMAGE_NAME ,
174- database = db_name ,
163+ database = psql_database ,
175164 sql_cmd = '-At -c "CREATE TABLE tbl (a integer, b integer);"' ,
176165 expected_output = "CREATE TABLE" ,
177166 )
@@ -181,7 +170,7 @@ def test_run(
181170 username = psql_user ,
182171 password = psql_password ,
183172 container_id = VARS .IMAGE_NAME ,
184- database = db_name ,
173+ database = psql_database ,
185174 sql_cmd = [
186175 '-At -c "INSERT INTO tbl VALUES (1, 2);"' ,
187176 '-At -c "INSERT INTO tbl VALUES (3, 4);"' ,
@@ -194,7 +183,7 @@ def test_run(
194183 username = psql_user ,
195184 password = psql_password ,
196185 container_id = VARS .IMAGE_NAME ,
197- database = db_name ,
186+ database = psql_database ,
198187 sql_cmd = '-At -c "SELECT * FROM tbl;"' ,
199188 )
200189 words = [
@@ -209,7 +198,7 @@ def test_run(
209198 username = psql_user ,
210199 password = psql_password ,
211200 container_id = VARS .IMAGE_NAME ,
212- database = db_name ,
201+ database = psql_database ,
213202 sql_cmd = '-At -c "DROP TABLE tbl;"' ,
214203 expected_output = "DROP TABLE" ,
215204 )
0 commit comments