()
| 101 | |
| 102 | |
| 103 | def 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 | |
| 145 | def test_option_match(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…