44
55from container_ci_suite .container_lib import ContainerTestLib
66from container_ci_suite .engines .podman_wrapper import PodmanCLIWrapper
7+ from container_ci_suite .container_lib import DatabaseWrapper
78
89from conftest import VARS
910
@@ -14,9 +15,15 @@ class TestMariaDBConfigurationContainer:
1415 """
1516
1617 def setup_method (self ):
18+ """
19+ Setup the test environment.
20+ """
1721 self .db = ContainerTestLib (image_name = VARS .IMAGE_NAME )
1822
1923 def teardown_method (self ):
24+ """
25+ Teardown the test environment.
26+ """
2027 self .db .cleanup ()
2128
2229 def test_container_creation_fails (self ):
@@ -155,11 +162,18 @@ class TestMariaDBConfigurationTests:
155162 """
156163
157164 def setup_method (self ):
158- self .db = ContainerTestLib (image_name = VARS .IMAGE_NAME )
159- self .db .set_new_db_type (db_type = "mysql" )
165+ """
166+ Setup the test environment.
167+ """
168+ self .db_config = ContainerTestLib (image_name = VARS .IMAGE_NAME )
169+ self .db_config .set_new_db_type (db_type = "mysql" )
170+ self .db_api = DatabaseWrapper (image_name = VARS .IMAGE_NAME )
160171
161172 def teardown_method (self ):
162- self .db .cleanup ()
173+ """
174+ Teardown the test environment.
175+ """
176+ self .db_config .cleanup ()
163177
164178 def test_configuration_auto_calculated_settings (self ):
165179 """
@@ -168,7 +182,7 @@ def test_configuration_auto_calculated_settings(self):
168182 cid_config_test = "auto-config_test"
169183 username = "config_test_user"
170184 password = "config_test"
171- assert self .db .create_container (
185+ assert self .db_config .create_container (
172186 cid_file_name = cid_config_test ,
173187 container_args = [
174188 "--env MYSQL_COLLATION=latin2_czech_cs" ,
@@ -179,57 +193,48 @@ def test_configuration_auto_calculated_settings(self):
179193 ],
180194 docker_args = "--memory=256m" ,
181195 )
182- cip = self .db .get_cip (cid_file_name = cid_config_test )
196+ cip = self .db_config .get_cip (cid_file_name = cid_config_test )
183197 assert cip
184- return_value = self .db .test_db_connection (
198+ assert self .db_config .test_db_connection (
185199 container_ip = cip ,
186200 username = username ,
187201 password = password ,
188202 max_attempts = 10 ,
189203 database = VARS .DB_NAME ,
190204 )
191- assert return_value
192- cid = self .db .get_cid (cid_file_name = cid_config_test )
205+ cid = self .db_config .get_cid (cid_file_name = cid_config_test )
193206 db_configuration = PodmanCLIWrapper .podman_exec_shell_command (
194207 cid_file_name = cid ,
195208 cmd = "cat /etc/my.cnf /etc/my.cnf.d/*" ,
196209 )
197- assert db_configuration
198- assert re .search (
199- r"key_buffer_size\s*=\s*25M" ,
200- db_configuration ,
201- )
202- assert re .search (
203- r"read_buffer_size\s*=\s*12M" ,
204- db_configuration ,
205- )
206- assert re .search (
207- r"innodb_log_file_size\s*=\s*38M" ,
208- db_configuration ,
209- )
210- assert re .search (
211- r"innodb_log_buffer_size\s*=\s*38M" ,
212- db_configuration ,
213- )
210+ words = [
211+ "key_buffer_size\\ s*=\\ s*25M" ,
212+ "read_buffer_size\\ s*=\\ s*12M" ,
213+ "innodb_log_file_size\\ s*=\\ s*38M" ,
214+ "innodb_log_buffer_size\\ s*=\\ s*38M" ,
215+ ]
216+ for word in words :
217+ assert re .search (word , db_configuration ), (
218+ f"Word { word } not found in { db_configuration } "
219+ )
214220 # do some real work to test replication in practice
215- return_value = self .db . test_db_connection (
221+ self .db_api . run_sql_command (
216222 container_ip = cip ,
217223 username = username ,
218224 password = password ,
225+ container_id = cid ,
219226 database = VARS .DB_NAME ,
220- sql_cmd = "-e 'CREATE TABLE tbl (col VARCHAR(20));'" ,
227+ sql_cmd = "CREATE TABLE tbl (col VARCHAR(20));" ,
228+ podman_run_command = "exec" ,
221229 )
222- print (f"Creating table: { return_value } " )
223- assert self .db .test_db_connection (
230+ show_table_output = self .db_api .run_sql_command (
224231 container_ip = cip ,
225232 username = username ,
226233 password = password ,
227- sql_cmd = "-e 'SHOW CREATE TABLE tbl;'" ,
234+ container_id = cid ,
228235 database = VARS .DB_NAME ,
229- )
230- show_table_output = PodmanCLIWrapper .call_podman_command (
231- cmd = f"exec { cid } mysql -uroot -e 'SHOW CREATE TABLE tbl;' { VARS .DB_NAME } " ,
232- ignore_error = True ,
236+ sql_cmd = "SHOW CREATE TABLE tbl;" ,
237+ podman_run_command = "exec" ,
233238 )
234239 assert "CHARSET=latin2" in show_table_output
235240 assert "COLLATE=latin2_czech_cs" in show_table_output
@@ -240,7 +245,7 @@ def test_configuration_options_settings(self):
240245 Test MariaDB container configuration options.
241246 """
242247 cid_config_test = "config_test"
243- assert self .db .create_container (
248+ assert self .db_config .create_container (
244249 cid_file_name = cid_config_test ,
245250 container_args = [
246251 "--env MYSQL_USER=config_test_user" ,
@@ -262,52 +267,43 @@ def test_configuration_options_settings(self):
262267 "--env WORKAROUND_DOCKER_BUG_14203=" ,
263268 ],
264269 )
265- cip = self .db .get_cip (cid_file_name = cid_config_test )
270+ cip = self .db_config .get_cip (cid_file_name = cid_config_test )
266271 assert cip
267- assert self .db .test_db_connection (
272+ assert self .db_config .test_db_connection (
268273 container_ip = cip ,
269274 username = "config_test_user" ,
270275 password = "config_test" ,
271276 database = VARS .DB_NAME ,
272277 )
273- cip = self .db .get_cip (cid_file_name = cid_config_test )
278+ cip = self .db_config .get_cip (cid_file_name = cid_config_test )
274279 assert cip
275- return_value = self .db .test_db_connection (
280+ assert self .db_config .test_db_connection (
276281 container_ip = cip ,
277282 username = "config_test_user" ,
278283 password = "config_test" ,
279284 max_attempts = 10 ,
280285 database = VARS .DB_NAME ,
281286 )
282- assert return_value
283- cid = self .db .get_cid (cid_file_name = cid_config_test )
287+ cid = self .db_config .get_cid (cid_file_name = cid_config_test )
284288 db_configuration = PodmanCLIWrapper .podman_exec_shell_command (
285289 cid_file_name = cid ,
286290 cmd = "cat /etc/my.cnf /etc/my.cnf.d/*" ,
287291 )
288- assert db_configuration
289- assert re .search (
290- r"lower_case_table_names\s*=\s*1" ,
291- db_configuration ,
292- )
293- assert re .search (
294- r"general_log\s*=\s*1" ,
295- db_configuration ,
296- )
297- assert re .search (
298- r"max_connections\s*=\s*1337" ,
299- db_configuration ,
300- re .MULTILINE | re .IGNORECASE ,
301- )
302- assert re .search (r"ft_min_word_len\s*=\s*8" , db_configuration )
303- assert re .search (
304- r"ft_max_word_len\s*=\s*15" ,
305- db_configuration ,
306- )
307- assert re .search (r"max_allowed_packet\s*=\s*10M" , db_configuration )
308- assert re .search (r"table_open_cache\s*=\s*100" , db_configuration )
309- assert re .search (r"sort_buffer_size\s*=\s*256K" , db_configuration )
310- assert re .search (r"key_buffer_size\s*=\s*16M" , db_configuration )
311- assert re .search (r"read_buffer_size\s*=\s*16M" , db_configuration )
312- assert re .search (r"innodb_log_file_size\s*=\s*4M" , db_configuration )
313- assert re .search (r"innodb_log_buffer_size\s*=\s*4M" , db_configuration )
292+ words = [
293+ "lower_case_table_names\\ s*=\\ s*1" ,
294+ "general_log\\ s*=\\ s*1" ,
295+ "max_connections\\ s*=\\ s*1337" ,
296+ "ft_min_word_len\\ s*=\\ s*8" ,
297+ "ft_max_word_len\\ s*=\\ s*15" ,
298+ "max_allowed_packet\\ s*=\\ s*10M" ,
299+ "table_open_cache\\ s*=\\ s*100" ,
300+ "sort_buffer_size\\ s*=\\ s*256K" ,
301+ "key_buffer_size\\ s*=\\ s*16M" ,
302+ "read_buffer_size\\ s*=\\ s*16M" ,
303+ "innodb_log_file_size\\ s*=\\ s*4M" ,
304+ "innodb_log_buffer_size\\ s*=\\ s*4M" ,
305+ ]
306+ for word in words :
307+ assert re .search (word , db_configuration ), (
308+ f"Word { word } not found in { db_configuration } "
309+ )
0 commit comments