v

Зеркало из https://github.com/vlang/v
Форк
0
/
flag_test.v 
171 строка · 3.8 Кб
1
import cli
2

3
fn test_if_string_flag_parses() {
4
	mut flag := cli.Flag{
5
		flag: .string
6
		name: 'flag'
7
	}
8
	flag.parse(['-flag', 'value1'], false) or { panic(err) }
9
	mut value := flag.get_string() or { panic(err) }
10
	assert value == 'value1'
11

12
	flag = cli.Flag{
13
		flag: .string
14
		name: 'flag'
15
	}
16
	flag.parse(['-flag=value2'], false) or { panic(err) }
17
	value = flag.get_string() or { panic(err) }
18
	assert value == 'value2'
19

20
	flag = cli.Flag{
21
		flag: .string_array
22
		name: 'flag'
23
	}
24
	flag.parse(['-flag=value1'], false) or { panic(err) }
25
	flag.parse(['-flag=value2'], false) or { panic(err) }
26
	mut values := flag.get_strings() or { panic(err) }
27
	assert values == ['value1', 'value2']
28
}
29

30
fn test_if_bool_flag_parses() {
31
	mut flag := cli.Flag{
32
		flag: .bool
33
		name: 'flag'
34
	}
35
	mut value := false
36
	flag.parse(['-flag'], false) or { panic(err) }
37
	value = flag.get_bool() or { panic(err) }
38
	assert value == true
39
	flag.parse(['-flag', 'false'], false) or { panic(err) }
40
	value = flag.get_bool() or { panic(err) }
41
	assert value == false
42
	flag.parse(['-flag', 'true'], false) or { panic(err) }
43
	value = flag.get_bool() or { panic(err) }
44
	assert value == true
45
	flag.parse(['-flag=false'], false) or { panic(err) }
46
	value = flag.get_bool() or { panic(err) }
47
	assert value == false
48
	flag.parse(['-flag=true'], false) or { panic(err) }
49
	value = flag.get_bool() or { panic(err) }
50
	assert value == true
51
}
52

53
fn test_if_int_flag_parses() {
54
	mut flag := cli.Flag{
55
		flag: .int
56
		name: 'flag'
57
	}
58

59
	mut value := 0
60
	flag.parse(['-flag', '42'], false) or { panic(err) }
61
	value = flag.get_int() or { panic(err) }
62
	assert value == 42
63

64
	flag = cli.Flag{
65
		flag: .int
66
		name: 'flag'
67
	}
68

69
	flag.parse(['-flag=45'], false) or { panic(err) }
70
	value = flag.get_int() or { panic(err) }
71
	assert value == 45
72

73
	flag = cli.Flag{
74
		flag: .int_array
75
		name: 'flag'
76
	}
77

78
	flag.parse(['-flag=42'], false) or { panic(err) }
79
	flag.parse(['-flag=45'], false) or { panic(err) }
80
	mut values := flag.get_ints() or { panic(err) }
81
	assert values == [42, 45]
82
}
83

84
fn test_if_float_flag_parses() {
85
	mut flag := cli.Flag{
86
		flag: .float
87
		name: 'flag'
88
	}
89
	mut value := f64(0)
90
	flag.parse(['-flag', '3.14158'], false) or { panic(err) }
91
	value = flag.get_float() or { panic(err) }
92
	assert value == 3.14158
93

94
	flag = cli.Flag{
95
		flag: .float
96
		name: 'flag'
97
	}
98

99
	flag.parse(['-flag=3.14159'], false) or { panic(err) }
100
	value = flag.get_float() or { panic(err) }
101
	assert value == 3.14159
102

103
	flag = cli.Flag{
104
		flag: .float_array
105
		name: 'flag'
106
	}
107

108
	flag.parse(['-flag=3.1'], false) or { panic(err) }
109
	flag.parse(['-flag=1.3'], false) or { panic(err) }
110
	mut values := flag.get_floats() or { panic(err) }
111
	assert values == [3.1, 1.3]
112
}
113

114
fn test_if_flag_parses_with_abbrev() {
115
	mut flag := cli.Flag{
116
		flag:   .bool
117
		name:   'flag'
118
		abbrev: 'f'
119
	}
120
	mut value := false
121
	flag.parse(['--flag'], true) or { panic(err) }
122
	value = flag.get_bool() or { panic(err) }
123
	assert value == true
124

125
	value = false
126
	flag = cli.Flag{
127
		flag:   .bool
128
		name:   'flag'
129
		abbrev: 'f'
130
	}
131
	flag.parse(['-f'], true) or { panic(err) }
132
	value = flag.get_bool() or { panic(err) }
133
	assert value == true
134
}
135

136
fn test_if_multiple_value_on_single_value() {
137
	mut flag := cli.Flag{
138
		flag: .float
139
		name: 'flag'
140
	}
141

142
	flag.parse(['-flag', '3.14158'], false) or { panic(err) }
143

144
	if _ := flag.parse(['-flag', '3.222'], false) {
145
		panic("No multiple value flag don't raise an error!")
146
	} else {
147
		assert true
148
	}
149
}
150

151
fn test_default_value() {
152
	mut flag := cli.Flag{
153
		flag:          .float
154
		name:          'flag'
155
		default_value: ['1.234']
156
	}
157

158
	flag.parse(['-flag', '3.14158'], false) or { panic(err) }
159
	mut value := flag.get_float() or { panic(err) }
160
	assert value == 3.14158
161

162
	flag = cli.Flag{
163
		flag:          .float
164
		name:          'flag'
165
		default_value: ['1.234']
166
	}
167

168
	flag.parse([''], false) or { panic(err) }
169
	value = flag.get_float() or { panic(err) }
170
	assert value == 1.234
171
}
172

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.