| 285 | |
| 286 | |
| 287 | def test_pattern_either(): |
| 288 | assert Option('-a').either == Either(Required(Option('-a'))) |
| 289 | assert Argument('A').either == Either(Required(Argument('A'))) |
| 290 | assert Required(Either(Option('-a'), Option('-b')), |
| 291 | Option('-c')).either == \ |
| 292 | Either(Required(Option('-a'), Option('-c')), |
| 293 | Required(Option('-b'), Option('-c'))) |
| 294 | assert Optional(Option('-a'), |
| 295 | Either(Option('-b'), |
| 296 | Option('-c'))).either == \ |
| 297 | Either(Required(Option('-b'), Option('-a')), |
| 298 | Required(Option('-c'), Option('-a'))) |
| 299 | assert Either(Option('-x'), Either(Option('-y'), Option('-z'))).either == \ |
| 300 | Either(Required(Option('-x')), |
| 301 | Required(Option('-y')), |
| 302 | Required(Option('-z'))) |
| 303 | assert OneOrMore(Argument('N'), Argument('M')).either == \ |
| 304 | Either(Required(Argument('N'), Argument('M'), |
| 305 | Argument('N'), Argument('M'))) |
| 306 | |
| 307 | |
| 308 | def test_pattern_fix_repeating_arguments(): |