MCPcopy
hub / github.com/docopt/docopt / test_parse_pattern

Function test_parse_pattern

test_docopt.py:103–142  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

101
102
103def test_parse_pattern():
104 o = [Option('-h'), Option('-v', '--verbose'), Option('-f', '--file', 1)]
105 assert parse_pattern('[ -h ]', options=o) == \
106 Required(Optional(Option('-h')))
107 assert parse_pattern('[ ARG ... ]', options=o) == \
108 Required(Optional(OneOrMore(Argument('ARG'))))
109 assert parse_pattern('[ -h | -v ]', options=o) == \
110 Required(Optional(Either(Option('-h'),
111 Option('-v', '--verbose'))))
112 assert parse_pattern('( -h | -v [ --file <f> ] )', options=o) == \
113 Required(Required(
114 Either(Option('-h'),
115 Required(Option('-v', '--verbose'),
116 Optional(Option('-f', '--file', 1, None))))))
117 assert parse_pattern('(-h|-v[--file=<f>]N...)', options=o) == \
118 Required(Required(Either(Option('-h'),
119 Required(Option('-v', '--verbose'),
120 Optional(Option('-f', '--file', 1, None)),
121 OneOrMore(Argument('N'))))))
122 assert parse_pattern('(N [M | (K | L)] | O P)', options=[]) == \
123 Required(Required(Either(
124 Required(Argument('N'),
125 Optional(Either(Argument('M'),
126 Required(Either(Argument('K'),
127 Argument('L')))))),
128 Required(Argument('O'), Argument('P')))))
129 assert parse_pattern('[ -h ] [N]', options=o) == \
130 Required(Optional(Option('-h')),
131 Optional(Argument('N')))
132 assert parse_pattern('[options]', options=o) == \
133 Required(Optional(AnyOptions()))
134 assert parse_pattern('[options] A', options=o) == \
135 Required(Optional(AnyOptions()),
136 Argument('A'))
137 assert parse_pattern('-v [options]', options=o) == \
138 Required(Option('-v', '--verbose'),
139 Optional(AnyOptions()))
140 assert parse_pattern('ADD', options=o) == Required(Argument('ADD'))
141 assert parse_pattern('<add>', options=o) == Required(Argument('<add>'))
142 assert parse_pattern('add', options=o) == Required(Command('add'))
143
144
145def test_option_match():

Callers

nothing calls this directly

Calls 9

OptionClass · 0.90
parse_patternFunction · 0.90
RequiredClass · 0.90
OptionalClass · 0.90
OneOrMoreClass · 0.90
ArgumentClass · 0.90
EitherClass · 0.90
AnyOptionsClass · 0.90
CommandClass · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…