GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — pythonVSCode/python_files/testing_tools/unittest_discovery.py at main · Busra67/pythonVSCode

Expand file tree

/

unittest_discovery.py

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
64 lines (53 loc) · 1.71 KB
/

unittest_discovery.py

Copy path

File metadata and controls

64 lines (53 loc) · 1.71 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import contextlib
import inspect
import os
import sys
import traceback
import unittest
start_dir = sys.argv[1]
pattern = sys.argv[2]
top_level_dir = sys.argv[3] if len(sys.argv) >= 4 else None
sys.path.insert(0, os.getcwd())
def get_sourceline(obj):
try:
s, n = inspect.getsourcelines(obj)
except Exception:
try:
# this handles `tornado` case we need a better
# way to get to the wrapped function.
# XXX This is a temporary solution
s, n = inspect.getsourcelines(obj.orig_method)
except Exception:
return "*"
for i, v in enumerate(s):
if v.strip().startswith(("def", "async def")):
return str(n + i)
return "*"
def generate_test_cases(suite):
for test in suite:
if isinstance(test, unittest.TestCase):
yield test
else:
for test_case in generate_test_cases(test):
yield test_case
try:
loader = unittest.TestLoader()
suite = loader.discover(start_dir, pattern=pattern, top_level_dir=top_level_dir)
print("start") # Don't remove this line
loader_errors = []
for s in generate_test_cases(suite):
tm = getattr(s, s._testMethodName)
testId = s.id()
if testId.startswith("unittest.loader._FailedTest"):
loader_errors.append(s._exception)
else:
print(testId.replace(".", ":") + ":" + get_sourceline(tm))
except Exception:
print("=== exception start ===")
traceback.print_exc()
print("=== exception end ===")
for error in loader_errors:
with contextlib.suppress(Exception):
print("=== exception start ===")
print(error.msg)
print("=== exception end ===")
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.