Buckets:
ktongue/docker_container / .vscode-server /extensions /donjayamanne.python-environment-manager-1.2.7 /pythonFiles /testing_tools /unittest_discovery.py
| 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: | |
| try: | |
| # this handles `tornado` case we need a better | |
| # way to get to the wrapped function. | |
| # This is a temporary solution | |
| s, n = inspect.getsourcelines(obj.orig_method) | |
| except: | |
| 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: | |
| print("=== exception start ===") | |
| traceback.print_exc() | |
| print("=== exception end ===") | |
| for error in loader_errors: | |
| try: | |
| print("=== exception start ===") | |
| print(error.msg) | |
| print("=== exception end ===") | |
| except: | |
| pass | |
Xet Storage Details
- Size:
- 1.7 kB
- Xet hash:
- fbde41ac0718dc713675fee5ab08d33bdf2035b100c06c188e2aee6a5dbde2ac
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.