2019-11-21 15:03:12 +03:00
|
|
|
import cli
|
|
|
|
|
|
|
|
fn test_if_string_flag_parses() {
|
|
|
|
mut flag := cli.Flag{
|
2020-07-18 14:24:10 +03:00
|
|
|
flag: .string
|
|
|
|
name: 'flag'
|
|
|
|
}
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', 'value1'], false) or { panic(err) }
|
|
|
|
mut value := flag.get_string() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == 'value1'
|
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .string
|
|
|
|
name: 'flag'
|
|
|
|
}
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=value2'], false) or { panic(err) }
|
|
|
|
value = flag.get_string() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == 'value2'
|
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .string
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
}
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=value1'], false) or { panic(err) }
|
|
|
|
flag.parse(['-flag=value2'], false) or { panic(err) }
|
|
|
|
mut values := flag.get_strings() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == ['value1', 'value2']
|
|
|
|
|
|
|
|
flags := [
|
|
|
|
cli.Flag{
|
|
|
|
flag: .string
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
value: ['a', 'b', 'c']
|
|
|
|
},
|
|
|
|
cli.Flag{
|
|
|
|
flag: .string
|
|
|
|
name: 'flag2'
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
values = flags.get_strings('flag') or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == ['a', 'b', 'c']
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_if_bool_flag_parses() {
|
|
|
|
mut flag := cli.Flag{
|
2020-07-18 14:24:10 +03:00
|
|
|
flag: .bool
|
|
|
|
name: 'flag'
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
2020-07-02 12:10:03 +03:00
|
|
|
mut value := false
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag'], false) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2020-07-02 12:10:03 +03:00
|
|
|
assert value == true
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', 'false'], false) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2020-07-02 12:10:03 +03:00
|
|
|
assert value == false
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', 'true'], false) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == true
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=false'], false) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2020-07-02 12:10:03 +03:00
|
|
|
assert value == false
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=true'], false) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == true
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_if_int_flag_parses() {
|
|
|
|
mut flag := cli.Flag{
|
2020-07-18 14:24:10 +03:00
|
|
|
flag: .int
|
|
|
|
name: 'flag'
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
2021-01-22 20:03:02 +03:00
|
|
|
|
2020-07-02 12:10:03 +03:00
|
|
|
mut value := 0
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', '42'], false) or { panic(err) }
|
|
|
|
value = flag.get_int() or { panic(err) }
|
2020-07-02 12:10:03 +03:00
|
|
|
assert value == 42
|
2021-01-22 20:03:02 +03:00
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .int
|
|
|
|
name: 'flag'
|
|
|
|
}
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=45'], false) or { panic(err) }
|
|
|
|
value = flag.get_int() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == 45
|
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .int
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
}
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=42'], false) or { panic(err) }
|
|
|
|
flag.parse(['-flag=45'], false) or { panic(err) }
|
|
|
|
mut values := flag.get_ints() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == [42, 45]
|
|
|
|
|
|
|
|
flags := [
|
|
|
|
cli.Flag{
|
|
|
|
flag: .int
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
value: ['1', '2', '3']
|
|
|
|
},
|
|
|
|
cli.Flag{
|
|
|
|
flag: .int
|
|
|
|
name: 'flag2'
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
values = flags.get_ints('flag') or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == [1, 2, 3]
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_if_float_flag_parses() {
|
|
|
|
mut flag := cli.Flag{
|
2020-07-18 14:24:10 +03:00
|
|
|
flag: .float
|
|
|
|
name: 'flag'
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
2020-07-02 12:10:03 +03:00
|
|
|
mut value := f64(0)
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', '3.14158'], false) or { panic(err) }
|
|
|
|
value = flag.get_float() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert value == 3.14158
|
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .float
|
|
|
|
name: 'flag'
|
|
|
|
}
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=3.14159'], false) or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert flag.value[0].f64() == 3.14159
|
2021-03-01 02:18:14 +03:00
|
|
|
value = flag.get_float() or { panic(err) }
|
2020-07-02 12:10:03 +03:00
|
|
|
assert value == 3.14159
|
2021-01-22 20:03:02 +03:00
|
|
|
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .float
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
}
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag=3.1'], false) or { panic(err) }
|
|
|
|
flag.parse(['-flag=1.3'], false) or { panic(err) }
|
|
|
|
mut values := flag.get_floats() or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == [3.1, 1.3]
|
|
|
|
|
|
|
|
flags := [
|
|
|
|
cli.Flag{
|
|
|
|
flag: .float
|
|
|
|
name: 'flag'
|
2021-02-15 18:25:30 +03:00
|
|
|
multiple: true
|
2021-01-22 20:03:02 +03:00
|
|
|
value: ['1.1', '2.2', '3.3']
|
|
|
|
},
|
|
|
|
cli.Flag{
|
|
|
|
flag: .float
|
|
|
|
name: 'flag2'
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
values = flags.get_floats('flag') or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
assert values == [1.1, 2.2, 3.3]
|
2019-11-21 15:03:12 +03:00
|
|
|
}
|
2020-07-18 14:24:10 +03:00
|
|
|
|
|
|
|
fn test_if_flag_parses_with_abbrev() {
|
|
|
|
mut flag := cli.Flag{
|
|
|
|
flag: .bool
|
|
|
|
name: 'flag'
|
|
|
|
abbrev: 'f'
|
|
|
|
}
|
|
|
|
mut value := false
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['--flag'], true) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2020-07-18 14:24:10 +03:00
|
|
|
assert value == true
|
2021-01-22 20:03:02 +03:00
|
|
|
|
|
|
|
value = false
|
|
|
|
flag = cli.Flag{
|
|
|
|
flag: .bool
|
|
|
|
name: 'flag'
|
|
|
|
abbrev: 'f'
|
|
|
|
}
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-f'], true) or { panic(err) }
|
|
|
|
value = flag.get_bool() or { panic(err) }
|
2020-07-18 14:24:10 +03:00
|
|
|
assert value == true
|
|
|
|
}
|
2021-01-22 20:03:02 +03:00
|
|
|
|
|
|
|
fn test_if_multiple_value_on_single_value() {
|
|
|
|
mut flag := cli.Flag{
|
|
|
|
flag: .float
|
|
|
|
name: 'flag'
|
|
|
|
}
|
|
|
|
|
2021-03-01 02:18:14 +03:00
|
|
|
flag.parse(['-flag', '3.14158'], false) or { panic(err) }
|
2021-01-22 20:03:02 +03:00
|
|
|
|
|
|
|
if _ := flag.parse(['-flag', '3.222'], false) {
|
|
|
|
panic("No multiple value flag don't raise an error!")
|
|
|
|
} else {
|
|
|
|
assert true
|
|
|
|
}
|
|
|
|
}
|