Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-python / pythonFiles / testing_tools / adapter / __main__.py
diff --git a/.config/coc/extensions/node_modules/coc-python/pythonFiles/testing_tools/adapter/__main__.py b/.config/coc/extensions/node_modules/coc-python/pythonFiles/testing_tools/adapter/__main__.py
new file mode 100644 (file)
index 0000000..01edc9f
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+
+from __future__ import absolute_import
+
+import argparse
+import sys
+
+from . import pytest, report
+from .errors import UnsupportedToolError, UnsupportedCommandError
+
+
+TOOLS = {
+    'pytest': {
+        '_add_subparser': pytest.add_cli_subparser,
+        'discover': pytest.discover,
+        },
+    }
+REPORTERS = {
+    'discover': report.report_discovered,
+    }
+
+
+
+def parse_args(
+        argv=sys.argv[1:],
+        prog=sys.argv[0],
+        ):
+    """
+    Return the subcommand & tool to run, along with its args.
+
+    This defines the standard CLI for the different testing frameworks.
+    """
+    parser = argparse.ArgumentParser(
+            description='Run Python testing operations.',
+            prog=prog,
+            )
+    cmdsubs = parser.add_subparsers(dest='cmd')
+
+    # Add "run" and "debug" subcommands when ready.
+    for cmdname in ['discover']:
+        sub = cmdsubs.add_parser(cmdname)
+        subsubs = sub.add_subparsers(dest='tool')
+        for toolname in sorted(TOOLS):
+            try:
+                add_subparser = TOOLS[toolname]['_add_subparser']
+            except KeyError:
+                continue
+            subsub = add_subparser(cmdname, toolname, subsubs)
+            if cmdname == 'discover':
+                subsub.add_argument('--simple', action='store_true')
+                subsub.add_argument('--no-hide-stdio', dest='hidestdio',
+                                    action='store_false')
+                subsub.add_argument('--pretty', action='store_true')
+
+    # Parse the args!
+    if '--' in argv:
+        seppos = argv.index('--')
+        toolargs = argv[seppos + 1:]
+        argv = argv[:seppos]
+    else:
+        toolargs = []
+    args = parser.parse_args(argv)
+    ns = vars(args)
+
+    cmd = ns.pop('cmd')
+    if not cmd:
+        parser.error('missing command')
+
+    tool = ns.pop('tool')
+    if not tool:
+        parser.error('missing tool')
+
+    return tool, cmd, ns, toolargs
+
+
+def main(toolname, cmdname, subargs, toolargs,
+         _tools=TOOLS, _reporters=REPORTERS):
+    try:
+        tool = _tools[toolname]
+    except KeyError:
+        raise UnsupportedToolError(toolname)
+
+    try:
+        run = tool[cmdname]
+        report_result = _reporters[cmdname]
+    except KeyError:
+        raise UnsupportedCommandError(cmdname)
+
+    parents, result = run(toolargs, **subargs)
+    report_result(result, parents,
+                  **subargs
+                  )
+
+
+if __name__ == '__main__':
+    tool, cmd, subargs, toolargs = parse_args()
+    main(tool, cmd, subargs, toolargs)