# Should output the same things as docopt/docopt for language agnostic tests # Testing `--` r"""Usage: prog foo -- ... """ $ prog foo "user-error" $ prog foo -- --bar {"--":true, "": ["--bar"], "foo":true} r"""Usage: prog foo [--] ... """ $ prog foo "user-error" # Wrong, should be # {"foo": true, "--": false, "": []} $ prog foo -- --bar {"foo": true, "--": true, "": ["--bar"]} r"""Complex command Usage: prog [options] -- ... prog [options] -- ... prog [options] prog [options] Options: -f --foo Foo --bar Bar """ $ prog x y --foo {"--":false,"--bar":null,"--foo":true,"":[],"":null,"":null,"":null,"":null,"":"x","":"y"} $ prog a b c d {"--":false,"--bar":null,"--foo":false,"":[],"":"a","":"b","":"c","":"d","":null,"":null} $ prog a b c d --foo --bar bar {"--":false,"--bar":"bar","--foo":true,"":[],"":"a","":"b","":"c","":"d","":null,"":null} $ prog x y --bar bar -- extra {"--bar": "bar", "--foo": false, "": "x", "": "y", "--": true, "": ["extra"], "": null, "": null, "": null, "": null} $ prog a b c d --foo --bar bar -- extra {"--foo": true, "--bar": "bar", "": null, "": null, "--": true, "": ["extra"], "": "a", "": "b", "": "c", "": "d"} $ prog x y -- e1 e2 e3 e4 {"--bar": null, "--foo": false, "": "x", "": "y", "--": true, "": ["e1", "e2", "e3", "e4"], "": null, "": null, "": null, "": null}