@@ -31,15 +31,18 @@ def do_login(br, url, username, password, server):
3131 response = br .submit ()
3232 return response
3333
34+ def get_world_sql_path ():
35+ if os .path .exists ('/world.sql' ):
36+ return '/world.sql'
37+ elif os .path .exists ('./world.sql' ):
38+ return './world.sql'
39+ else :
40+ path = os .path .dirname (os .path .realpath (__file__ ))
41+ return path + '/world.sql'
42+
3443def test_import (url , username , password , server , sqlfile ):
3544 if sqlfile is None :
36- if os .path .exists ('/world.sql' ):
37- sqlfile = '/world.sql'
38- elif os .path .exists ('./world.sql' ):
39- sqlfile = './world.sql'
40- else :
41- path = os .path .dirname (os .path .realpath (__file__ ))
42- sqlfile = path + '/world.sql'
45+ sqlfile = get_world_sql_path ()
4346
4447 br = create_browser ()
4548
@@ -115,6 +118,10 @@ def test_import_from_folder(url, username, password, server, sqlfile):
115118 if not upload_dir :
116119 pytest .skip ("Missing PMA_UPLOADDIR ENV" , allow_module_level = True )
117120
121+ # Copy file into the volume
122+ with open (get_world_sql_path (), 'rb' ) as src , open (upload_dir + '/world-data.sql' , 'wb' ) as dst :
123+ dst .write (src .read ())
124+
118125 br = create_browser ()
119126
120127 response = do_login (br , url , username , password , server )
@@ -123,14 +130,26 @@ def test_import_from_folder(url, username, password, server, sqlfile):
123130
124131 # Open server import
125132 response = br .follow_link (text_regex = re .compile ('Import' ))
126- assert (b'Browse your computer:' in response .read ())
127- assert (upload_dir in response .read ())
133+ response = response .read ()
134+
135+ assert (b'Browse your computer:' in response )
136+ assert (upload_dir .encode () in response )
137+ assert (b'world-data.sql' in response )
128138
129139def test_export_to_folder (url , username , password , server , sqlfile ):
130140 save_dir = os .environ .get ('PMA_SAVEDIR' );
131141 if not save_dir :
132142 pytest .skip ("Missing PMA_SAVEDIR ENV" , allow_module_level = True )
133143
144+ # Delete file from previous runs
145+ if os .path .exists (save_dir + "/db_server.sql" ):
146+ os .remove (save_dir + "/db_server.sql" )
147+
148+ assert os .path .exists (save_dir + "/db_server.sql" ) == False
149+
150+ # Avoid: "The web server does not have permission to save the file"
151+ os .chmod (save_dir , 0o777 )
152+
134153 br = create_browser ()
135154
136155 response = do_login (br , url , username , password , server )
@@ -139,5 +158,16 @@ def test_export_to_folder(url, username, password, server, sqlfile):
139158
140159 # Open server export
141160 response = br .follow_link (text_regex = re .compile ('Export' ))
142- assert (b'Save on server in the directory' in response .read ())
143- assert (save_dir in response .read ())
161+ response = response .read ()
162+ assert (b'Save on server in the directory' in response )
163+ assert (save_dir .encode () in response )
164+
165+ br .select_form ('dump' )
166+ br .find_control ("quick_export_onserver" ).items [0 ].selected = True
167+
168+ response = br .submit ()
169+ response = response .read ()
170+
171+ assert (b'Dump has been saved to file' in response )
172+ assert (b'Dump has been saved to file /etc/phpmyadmin/exports/db_server.sql' in response )
173+ assert os .path .exists (save_dir + "/db_server.sql" ) == True
0 commit comments