|
2 | 2 | import typer |
3 | 3 |
|
4 | 4 | # for the test runner |
5 | | -import time |
6 | 5 | import pytest |
7 | 6 | # ------------------ |
8 | 7 |
|
9 | 8 | import langroid as lr |
10 | 9 | from langroid.utils.configuration import set_global, Settings |
11 | 10 | from langroid.utils.logging import setup_colored_logging |
12 | 11 |
|
13 | | -# import the empty generated code |
14 | | -import generated.test_class |
15 | | -# ------------------ |
| 12 | +from pytest_plugins import ResultsCollector, SessionStartPlugin |
16 | 13 |
|
17 | 14 | app = typer.Typer() |
18 | 15 | setup_colored_logging() |
@@ -43,49 +40,6 @@ def generate_first_attempt() -> None: |
43 | 40 | _out.write(response.content) |
44 | 41 |
|
45 | 42 |
|
46 | | -class ResultsCollector: |
47 | | - def __init__(self): |
48 | | - self.reports = [] |
49 | | - self.collected = 0 |
50 | | - self.exitcode = 0 |
51 | | - self.passed = 0 |
52 | | - self.failed = 0 |
53 | | - self.xfailed = 0 |
54 | | - self.skipped = 0 |
55 | | - self.total_duration = 0 |
56 | | - |
57 | | - @pytest.hookimpl(hookwrapper=True) |
58 | | - def pytest_runtest_makereport(self, item, call): |
59 | | - outcome = yield |
60 | | - report = outcome.get_result() |
61 | | - if report.when == 'call': |
62 | | - self.reports.append(report) |
63 | | - |
64 | | - def pytest_collection_modifyitems(self, items): |
65 | | - self.collected = len(items) |
66 | | - |
67 | | - def pytest_terminal_summary(self, terminalreporter, exitstatus): |
68 | | - self.exitcode = exitstatus |
69 | | - self.passed = len(terminalreporter.stats.get('passed', [])) |
70 | | - self.failed = len(terminalreporter.stats.get('failed', [])) |
71 | | - self.xfailed = len(terminalreporter.stats.get('xfailed', [])) |
72 | | - self.skipped = len(terminalreporter.stats.get('skipped', [])) |
73 | | - |
74 | | - self.total_duration = time.time() - terminalreporter._sessionstarttime |
75 | | - |
76 | | - |
77 | | -class SessionStartPlugin: |
78 | | - """ |
79 | | - The goal of this plugin is to allow us to run pytest multiple times |
80 | | - and have it pick up the changes we generate in `generated/test_class.py` |
81 | | - """ |
82 | | - def pytest_sessionstart(self): |
83 | | - if globals().get('generated', None) is not None: |
84 | | - import importlib |
85 | | - print("Reloading generated.test_class module...") |
86 | | - importlib.reload(generated.test_class) |
87 | | - |
88 | | - |
89 | 43 | def get_test_results() -> str: |
90 | 44 | collector = ResultsCollector() |
91 | 45 | setup = SessionStartPlugin() |
|
0 commit comments