1
+ # -*- coding: utf-8 -*-
1
2
"""
2
3
Creates a new folder for running SeleniumBase scripts.
3
4
4
5
Usage:
5
- seleniumbase mkdir [DIRECTORY]
6
- OR sbase mkdir [DIRECTORY]
6
+ seleniumbase mkdir [DIRECTORY] [OPTIONS]
7
+ OR sbase mkdir [DIRECTORY] [OPTIONS]
7
8
8
9
Example:
9
10
sbase mkdir ui_tests
10
11
12
+ Options:
13
+ -b / --basic (Only config files. No tests added.)
14
+
11
15
Output:
12
16
Creates a new folder for running SBase scripts.
13
17
The new folder contains default config files,
25
29
def invalid_run_command (msg = None ):
26
30
exp = (" ** mkdir **\n \n " )
27
31
exp += " Usage:\n "
28
- exp += " seleniumbase mkdir [DIRECTORY_NAME ]\n "
29
- exp += " OR sbase mkdir [DIRECTORY_NAME ]\n "
32
+ exp += " seleniumbase mkdir [DIRECTORY] [OPTIONS ]\n "
33
+ exp += " OR sbase mkdir [DIRECTORY] [OPTIONS ]\n "
30
34
exp += " Example:\n "
31
- exp += " sbase mkdir browser_tests\n "
35
+ exp += " sbase mkdir ui_tests\n "
36
+ exp += " Options:\n "
37
+ exp += " -b / --basic (Only config files. No tests added.)\n "
32
38
exp += " Output:\n "
33
39
exp += " Creates a new folder for running SBase scripts.\n "
34
40
exp += " The new folder contains default config files,\n "
@@ -42,32 +48,68 @@ def invalid_run_command(msg=None):
42
48
43
49
44
50
def main ():
45
- colorama .init (autoreset = True )
46
- c1 = colorama .Fore .BLUE + colorama .Back .LIGHTCYAN_EX
47
- c5 = colorama .Fore .RED + colorama .Back .LIGHTYELLOW_EX
48
- cr = colorama .Style .RESET_ALL
51
+ c1 = ""
52
+ c5 = ""
53
+ c7 = ""
54
+ cr = ""
55
+ if "linux" not in sys .platform :
56
+ colorama .init (autoreset = True )
57
+ c1 = colorama .Fore .BLUE + colorama .Back .LIGHTCYAN_EX
58
+ c5 = colorama .Fore .RED + colorama .Back .LIGHTYELLOW_EX
59
+ c7 = colorama .Fore .BLACK + colorama .Back .MAGENTA
60
+ cr = colorama .Style .RESET_ALL
61
+
62
+ basic = False
63
+ help_me = False
49
64
error_msg = None
65
+ invalid_cmd = None
66
+
50
67
command_args = sys .argv [2 :]
51
- if len (command_args ) != 1 :
52
- invalid_run_command ()
53
68
dir_name = command_args [0 ]
54
69
if len (str (dir_name )) < 2 :
55
70
error_msg = (
56
71
'Directory name length must be at least 2 characters long!' )
57
72
elif "/" in str (dir_name ) or "\\ " in str (dir_name ):
58
73
error_msg = (
59
74
'Directory name must not include slashes ("/", "\\ ")!' )
75
+ elif dir_name .startswith ("-" ):
76
+ error_msg = 'Directory name cannot start with "-"!'
60
77
elif os .path .exists (os .getcwd () + '/' + dir_name ):
61
78
error_msg = (
62
- 'Directory "%s" already exists in the current path !' % dir_name )
79
+ 'Directory "%s" already exists in this directory !' % dir_name )
63
80
if error_msg :
64
- error_msg = c5 + error_msg + cr
81
+ error_msg = c5 + "ERROR: " + error_msg + cr
65
82
invalid_run_command (error_msg )
66
83
84
+ if len (command_args ) >= 2 :
85
+ options = command_args [1 :]
86
+ for option in options :
87
+ option = option .lower ()
88
+ if option == "help" or option == "--help" :
89
+ help_me = True
90
+ elif option == "-b" or option == "--basic" :
91
+ basic = True
92
+ else :
93
+ invalid_cmd = "\n ===> INVALID OPTION: >> %s <<\n " % option
94
+ invalid_cmd = invalid_cmd .replace ('>> ' , ">>" + c5 + " " )
95
+ invalid_cmd = invalid_cmd .replace (' <<' , " " + cr + "<<" )
96
+ invalid_cmd = invalid_cmd .replace ('>>' , c7 + ">>" + cr )
97
+ invalid_cmd = invalid_cmd .replace ('<<' , c7 + "<<" + cr )
98
+ help_me = True
99
+ break
100
+ if help_me :
101
+ invalid_run_command (invalid_cmd )
102
+
67
103
os .mkdir (dir_name )
68
104
69
105
data = []
70
- data .append ("seleniumbase" )
106
+ seleniumbase_req = "seleniumbase"
107
+ try :
108
+ from seleniumbase import __version__
109
+ seleniumbase_req = "seleniumbase>=%s" % str (__version__ )
110
+ except Exception :
111
+ pass
112
+ data .append (seleniumbase_req )
71
113
data .append ("" )
72
114
file_path = "%s/%s" % (dir_name , "requirements.txt" )
73
115
file = codecs .open (file_path , "w+" , "utf-8" )
@@ -96,7 +138,11 @@ def main():
96
138
data .append (" offline: custom marker" )
97
139
data .append (" develop: custom marker" )
98
140
data .append (" qa: custom marker" )
141
+ data .append (" ci: custom marker" )
142
+ data .append (" e2e: custom marker" )
99
143
data .append (" ready: custom marker" )
144
+ data .append (" smoke: custom marker" )
145
+ data .append (" deploy: custom marker" )
100
146
data .append (" active: custom marker" )
101
147
data .append (" master: custom marker" )
102
148
data .append (" release: custom marker" )
@@ -202,6 +248,7 @@ def main():
202
248
data .append ("html_report.html" )
203
249
data .append ("report.html" )
204
250
data .append ("report.xml" )
251
+ data .append ("dashboard.html" )
205
252
data .append ("allure_report" )
206
253
data .append ("allure-report" )
207
254
data .append ("allure_results" )
@@ -221,13 +268,20 @@ def main():
221
268
data .append ("archived_files" )
222
269
data .append ("assets" )
223
270
data .append ("temp" )
224
- data .append ("temp* " )
271
+ data .append ("temp_ " )
225
272
data .append ("node_modules" )
226
273
file_path = "%s/%s" % (dir_name , ".gitignore" )
227
274
file = codecs .open (file_path , "w+" , "utf-8" )
228
275
file .writelines ("\r \n " .join (data ))
229
276
file .close ()
230
277
278
+ if basic :
279
+ success = (
280
+ '\n ' + c1 + '* Directory "' + dir_name + '" was created '
281
+ 'with config files! *' + cr + '\n ' )
282
+ print (success )
283
+ return
284
+
231
285
data = []
232
286
data .append ("from seleniumbase import BaseCase" )
233
287
data .append ("" )
@@ -481,6 +535,7 @@ def main():
481
535
file = codecs .open (file_path , "w+" , "utf-8" )
482
536
file .writelines ("\r \n " .join (data ))
483
537
file .close ()
538
+
484
539
success = (
485
540
'\n ' + c1 + '* Directory "' + dir_name + '" was created '
486
541
'with config files and sample tests! *' + cr + '\n ' )
0 commit comments