@@ -31,15 +31,18 @@ def do_login(br, url, username, password, server):
31
31
response = br .submit ()
32
32
return response
33
33
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
+
34
43
def test_import (url , username , password , server , sqlfile ):
35
44
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 ()
43
46
44
47
br = create_browser ()
45
48
@@ -115,6 +118,10 @@ def test_import_from_folder(url, username, password, server, sqlfile):
115
118
if not upload_dir :
116
119
pytest .skip ("Missing PMA_UPLOADDIR ENV" , allow_module_level = True )
117
120
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
+
118
125
br = create_browser ()
119
126
120
127
response = do_login (br , url , username , password , server )
@@ -123,14 +130,26 @@ def test_import_from_folder(url, username, password, server, sqlfile):
123
130
124
131
# Open server import
125
132
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 )
128
138
129
139
def test_export_to_folder (url , username , password , server , sqlfile ):
130
140
save_dir = os .environ .get ('PMA_SAVEDIR' );
131
141
if not save_dir :
132
142
pytest .skip ("Missing PMA_SAVEDIR ENV" , allow_module_level = True )
133
143
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
+
134
153
br = create_browser ()
135
154
136
155
response = do_login (br , url , username , password , server )
@@ -139,5 +158,16 @@ def test_export_to_folder(url, username, password, server, sqlfile):
139
158
140
159
# Open server export
141
160
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