Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-python / pythonFiles / testing_tools / adapter / report.py
diff --git a/.config/coc/extensions/node_modules/coc-python/pythonFiles/testing_tools/adapter/report.py b/.config/coc/extensions/node_modules/coc-python/pythonFiles/testing_tools/adapter/report.py
new file mode 100644 (file)
index 0000000..edc33fc
--- /dev/null
@@ -0,0 +1,74 @@
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+
+from __future__ import print_function
+
+import json
+
+
+def report_discovered(tests, parents, pretty=False, simple=False,
+                      _send=print, **_ignored):
+    """Serialize the discovered tests and write to stdout."""
+    if simple:
+        data = [{
+            'id': test.id,
+            'name': test.name,
+            'testroot': test.path.root,
+            'relfile': test.path.relfile,
+            'lineno': test.lineno,
+            'testfunc': test.path.func,
+            'subtest': test.path.sub or None,
+            'markers': test.markers or [],
+            } for test in tests]
+    else:
+        byroot = {}
+        for parent in parents:
+            rootdir = parent.name if parent.root is None else parent.root
+            try:
+                root = byroot[rootdir]
+            except KeyError:
+                root = byroot[rootdir] = {
+                        'id': rootdir,
+                        'parents': [],
+                        'tests': [],
+                        }
+            if not parent.root:
+                root['id'] = parent.id
+                continue
+            root['parents'].append({
+                'id': parent.id,
+                'kind': parent.kind,
+                'name': parent.name,
+                'parentid': parent.parentid,
+                })
+        for test in tests:
+            # We are guaranteed that the parent was added.
+            root = byroot[test.path.root]
+            testdata = {
+                'id': test.id,
+                'name': test.name,
+                # TODO: Add a "kind" field
+                #  (e.g. "unittest", "function", "doctest")
+                'source': test.source,
+                'markers': test.markers or [],
+                'parentid': test.parentid,
+                }
+            root['tests'].append(testdata)
+        data = [{
+            'rootid': byroot[root]['id'],
+            'root': root,
+            'parents': byroot[root]['parents'],
+            'tests': byroot[root]['tests'],
+            } for root in sorted(byroot)]
+
+    kwargs = {}
+    if pretty:
+        # human-formatted
+        kwargs = dict(
+            sort_keys=True,
+            indent=4,
+            separators=(',', ': '),
+            )
+    serialized = json.dumps(data, **kwargs)
+
+    _send(serialized)