@@ -119,7 +119,7 @@ def process_test_file(code_lines, new_lang):
119
119
changed = True
120
120
new_parent = MD_F .get_lang_parent_class (new_lang )
121
121
new_line = (
122
- '%sclass %s(%s)%s'
122
+ '%sclass %s(%s): %s'
123
123
'' % (whitespace , name , new_parent , comments ))
124
124
else :
125
125
new_line = line
@@ -157,7 +157,7 @@ def process_test_file(code_lines, new_lang):
157
157
158
158
seleniumbase_lines .append (line )
159
159
160
- return seleniumbase_lines , changed
160
+ return seleniumbase_lines , changed , detected_lang
161
161
162
162
163
163
def main ():
@@ -171,7 +171,6 @@ def main():
171
171
c7 = colorama .Fore .BLACK + colorama .Back .MAGENTA
172
172
cr = colorama .Style .RESET_ALL
173
173
expected_arg = ("[A SeleniumBase Python file]" )
174
- # num_args = len(sys.argv)
175
174
command_args = sys .argv [2 :]
176
175
177
176
seleniumbase_file = command_args [0 ]
@@ -257,11 +256,11 @@ def main():
257
256
specify_lang = specify_lang .replace ('>*' , c5 + ">*" )
258
257
specify_lang = specify_lang .replace ('*<' , "*<" + cr )
259
258
specify_lang = specify_lang .replace (
260
- "Language Options:" , c3 + "Language Options:" + cr )
259
+ "Language Options:" , c4 + "Language Options:" + cr )
261
260
specify_lang = specify_lang .replace (
262
- "> ******** " , c4 + "> ******** " + cr )
261
+ "> ******** " , c3 + "> ******** " + cr )
263
262
specify_lang = specify_lang .replace (
264
- " ******** <" , c4 + " ******** <" + cr )
263
+ " ******** <" , c3 + " ******** <" + cr )
265
264
specify_lang = specify_lang .replace ("--en" , c2 + "--en" + cr )
266
265
specify_lang = specify_lang .replace ("--zh" , c2 + "--zh" + cr )
267
266
specify_lang = specify_lang .replace ("--nl" , c2 + "--nl" + cr )
@@ -286,11 +285,11 @@ def main():
286
285
specify_action = specify_action .replace (">*" , c6 + ">*" )
287
286
specify_action = specify_action .replace ("*<" , "*<" + cr )
288
287
specify_action = specify_action .replace (
289
- "Action Options:" , c3 + "Action Options:" + cr )
288
+ "Action Options:" , c4 + "Action Options:" + cr )
290
289
specify_action = specify_action .replace (
291
- "> *** " , c4 + "> *** " + cr )
290
+ "> *** " , c3 + "> *** " + cr )
292
291
specify_action = specify_action .replace (
293
- " *** <" , c4 + " *** <" + cr )
292
+ " *** <" , c3 + " *** <" + cr )
294
293
specify_action = specify_action .replace (" -p" , " " + c1 + "-p" + cr )
295
294
specify_action = specify_action .replace (" -o" , " " + c1 + "-o" + cr )
296
295
specify_action = specify_action .replace (" -c" , " " + c1 + "-c" + cr )
@@ -300,9 +299,9 @@ def main():
300
299
" --overwrite" , " " + c1 + "--overwrite" + cr )
301
300
specify_action = specify_action .replace (
302
301
" --copy" , " " + c1 + "--copy" + cr )
303
- example_run = example_run .replace ("Examples:" , c3 + "Examples:" + cr )
304
- example_run = example_run .replace ("> *** " , c4 + "> *** " + cr )
305
- example_run = example_run .replace (" *** <" , c4 + " *** <" + cr )
302
+ example_run = example_run .replace ("Examples:" , c4 + "Examples:" + cr )
303
+ example_run = example_run .replace ("> *** " , c3 + "> *** " + cr )
304
+ example_run = example_run .replace (" *** <" , c3 + " *** <" + cr )
306
305
example_run = example_run .replace (" -p" , " " + c1 + "-p" + cr )
307
306
example_run = example_run .replace (" -o" , " " + c1 + "-o" + cr )
308
307
example_run = example_run .replace (" -c" , " " + c1 + "-c" + cr )
@@ -312,9 +311,9 @@ def main():
312
311
example_run = example_run .replace (" --zh" , " " + c2 + "--zh" + cr )
313
312
example_run = example_run .replace (" --pt" , " " + c2 + "--pt" + cr )
314
313
example_run = example_run .replace (" --nl" , " " + c2 + "--nl" + cr )
315
- usage = usage .replace ("Usage:" , c3 + "Usage:" + cr )
316
- usage = usage .replace ("> *** " , c4 + "> *** " + cr )
317
- usage = usage .replace (" *** <" , c4 + " *** <" + cr )
314
+ usage = usage .replace ("Usage:" , c4 + "Usage:" + cr )
315
+ usage = usage .replace ("> *** " , c3 + "> *** " + cr )
316
+ usage = usage .replace (" *** <" , c3 + " *** <" + cr )
318
317
usage = usage .replace ("SB_FILE.py" , c4 + "SB_FILE.py" + cr )
319
318
usage = usage .replace ("LANGUAGE" , c2 + "LANGUAGE" + cr )
320
319
usage = usage .replace ("ACTION" , c1 + "ACTION" + cr )
@@ -342,13 +341,14 @@ def main():
342
341
343
342
with open (seleniumbase_file , 'r' , encoding = 'utf-8' ) as f :
344
343
all_code = f .read ()
345
- if "def test_" not in all_code :
346
- raise Exception ("\n \n `%s` is not a valid SeleniumBase unittest file!\n "
344
+ if "def test_" not in all_code and "from seleniumbase" not in all_code :
345
+ raise Exception ("\n \n `%s` is not a valid SeleniumBase test file!\n "
347
346
"\n Expecting: %s\n "
348
347
% (seleniumbase_file , expected_arg ))
349
348
code_lines = all_code .split ('\n ' )
350
349
351
- seleniumbase_lines , changed = process_test_file (code_lines , new_lang )
350
+ seleniumbase_lines , changed , d_l = process_test_file (code_lines , new_lang )
351
+ detected_lang = d_l
352
352
353
353
if not changed :
354
354
msg = ('\n *> [%s] was already in %s! * No changes were made! <*\n '
@@ -357,13 +357,54 @@ def main():
357
357
print (msg )
358
358
return
359
359
360
+ save_line = ("[[[[%s]]]] was translated to [[[%s]]]! "
361
+ "(Previous: %s)\n "
362
+ "" % (seleniumbase_file , new_lang , detected_lang ))
363
+ save_line = save_line .replace ("[[[[" , "" + c4 )
364
+ save_line = save_line .replace ("]]]]" , cr + "" )
365
+ save_line = save_line .replace ("[[[" , "" + c2 )
366
+ save_line = save_line .replace ("]]]" , cr + "" )
367
+
360
368
if print_only :
369
+ print ("" )
370
+ print (save_line )
371
+ print (c1 + "* Here are the results: >>>" + cr )
372
+ print ("--------------------------------------------------------------" )
361
373
for line in seleniumbase_lines :
362
374
print (line )
375
+ print ("--------------------------------------------------------------" )
376
+
377
+ new_file_name = None
378
+ if copy :
379
+ base_file_name = seleniumbase_file .split ('.py' )[0 ]
380
+ new_locale = MD_F .get_locale_code (new_lang )
381
+ new_ext = "_" + new_locale + ".py"
382
+ for locale in MD_F .get_locale_list ():
383
+ ext = "_" + locale + ".py"
384
+ if seleniumbase_file .endswith (ext ):
385
+ base_file_name = seleniumbase_file .split (ext )[0 ]
386
+ break
387
+ new_file_name = base_file_name + new_ext
388
+ elif overwrite :
389
+ new_file_name = seleniumbase_file
390
+ else :
391
+ pass # Print-only run already done
363
392
364
- return
393
+ if not print_only :
394
+ print ("" )
395
+ print (save_line )
396
+ else :
397
+ pass # Print-only run already done
365
398
366
- # TODO: Finish writing this for -o and -c options (File Writing)
399
+ if new_file_name :
400
+ out_file = codecs .open (new_file_name , "w+" , encoding = 'utf-8' )
401
+ out_file .writelines ("\r \n " .join (seleniumbase_lines ))
402
+ out_file .close ()
403
+ results_saved = ("The translation was saved to: [[[%s]]]\n "
404
+ "" % new_file_name )
405
+ results_saved = results_saved .replace ("[[[" , "" + c1 )
406
+ results_saved = results_saved .replace ("]]]" , cr + "" )
407
+ print (results_saved )
367
408
368
409
369
410
if __name__ == "__main__" :
0 commit comments