2025-01-13 17:13:22 -06:00
|
|
|
import std/[unittest]
|
|
|
|
import ./lib
|
|
|
|
|
2025-01-24 17:42:29 -06:00
|
|
|
preCompileTestModules()
|
|
|
|
|
2025-01-13 17:13:22 -06:00
|
|
|
suite "hwylcli":
|
|
|
|
|
2025-01-23 19:25:09 -06:00
|
|
|
okWithArgs(
|
|
|
|
"posBasic",
|
|
|
|
"a b c d e",
|
|
|
|
"""args=@["a", "b", "c", "d", "e"]"""
|
|
|
|
)
|
|
|
|
okWithArgs(
|
|
|
|
"posFirst",
|
|
|
|
"a b c d e",
|
|
|
|
"""first=@["a", "b", "c"], second=d, third=e"""
|
|
|
|
)
|
|
|
|
failWithArgs(
|
|
|
|
"posFirst",
|
|
|
|
"a b",
|
|
|
|
"error missing positional args, got: 2, expected at least: 3",
|
|
|
|
)
|
|
|
|
okWithArgs("posLast", "a b", """first=a, second=b, third=@[]""")
|
|
|
|
okWithArgs("posNoMulti", "5 b c", """first=5, second=b, third=c""")
|
|
|
|
failWithArgs("posNoMulti", "5 b c d", """error unexepected positional args, got: 4, expected: 3""")
|
|
|
|
|
|
|
|
okWithArgs("enumFlag","--color red", "color=red")
|
|
|
|
failWithArgs("enumFlag","--color black", "error failed to parse value for color as enum: black expected one of: red,blue,green")
|
|
|
|
|
|
|
|
okWithArgs("subcommands", "a b c","""input=b outputs=@["c"]""")
|
|
|
|
failWithArgs("subcommands", "b b c","""error got unexpected positionals args: b c""")
|
|
|
|
okWithArgs("subcommands","b --input in --outputs out1 --outputs out2", """input=in outputs=@["out1", "out2"]""")
|
|
|
|
|
|
|
|
okWithArgs("posFirst", "--help",
|
2025-01-13 17:13:22 -06:00
|
|
|
"""usage:
|
|
|
|
positionals first... second third [flags]
|
|
|
|
|
|
|
|
flags:
|
|
|
|
-h --help show this help""")
|
2025-01-23 19:25:09 -06:00
|
|
|
|
2025-01-24 17:42:29 -06:00
|
|
|
|
|
|
|
okWithArgs("flagSettings", "--help",
|
|
|
|
"""usage:
|
|
|
|
flag-settings [flags]
|
|
|
|
|
|
|
|
flags:
|
|
|
|
--input flag with default hidden
|
|
|
|
--count a count var with default (0)
|
|
|
|
-h --help show this help""")
|
|
|
|
|
|
|
|
okWithArgs("cliCfgSettingHideDefault", "--help",
|
|
|
|
"""usage:
|
|
|
|
setting-hide-default [flags]
|
|
|
|
|
|
|
|
flags:
|
|
|
|
--input flag with default hidden
|
|
|
|
--count a count var with default
|
|
|
|
-h --help show this help""")
|
|
|
|
|
2025-01-25 15:23:15 -06:00
|
|
|
okWithArgs("customHelp", "--help",
|
|
|
|
"""usage:
|
|
|
|
custom-help [flags]
|
|
|
|
|
|
|
|
flags:
|
|
|
|
--input
|
|
|
|
input (input.txt)
|
|
|
|
--output
|
|
|
|
output (output.txt)
|
|
|
|
-h --help
|
|
|
|
show this help""")
|