Skip to content

Commit 7236c2e

Browse files
Merge pull request #47 from ricardogsilva/10-add-more-execution-feedback
Added runtime execution output
2 parents 50251a3 + 9c483ec commit 7236c2e

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/cite_runner/config.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ class CiteRunnerContext(pydantic.BaseModel):
3535
debug: bool = False
3636
jinja_environment: jinja2.Environment = jinja2.Environment()
3737
network_timeout_seconds: int = 20
38-
rich_console: "Console"
38+
result_console: Console
39+
status_console: Console
3940
settings: CiteRunnerSettings
4041

4142

@@ -72,20 +73,16 @@ def configure_logging(rich_console: Console, debug: bool) -> None:
7273
logging.getLogger("httpx").setLevel(logging.INFO if debug else logging.WARNING)
7374

7475

75-
def get_console() -> Console:
76-
return Console()
77-
78-
7976
def get_context(
8077
debug: bool,
8178
network_timeout_seconds: int,
8279
) -> CiteRunnerContext:
8380
settings = get_settings()
84-
console = get_console()
8581
return CiteRunnerContext(
8682
debug=debug,
8783
network_timeout_seconds=network_timeout_seconds,
8884
jinja_environment=_get_jinja_environment(settings),
8985
settings=settings,
90-
rich_console=console,
86+
result_console=Console(),
87+
status_console=Console(stderr=True),
9188
)

src/cite_runner/main.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def base_callback(
6060
debug=debug,
6161
network_timeout_seconds=network_timeout,
6262
)
63-
config.configure_logging(rich_console=context.rich_console, debug=debug)
63+
config.configure_logging(rich_console=context.status_console, debug=debug)
6464
ctx.obj = context
6565

6666

@@ -81,9 +81,11 @@ def parse_test_result(
8181
include_passed_detail: bool = False,
8282
):
8383
context: config.CiteRunnerContext = ctx.obj
84+
context.status_console.print("Parsing test suite execution results...")
8485
parsed = teamengine_runner.parse_test_suite_result(
8586
test_suite_result.read_text(), context.settings
8687
)
88+
context.status_console.print(f"Serializing parsed results to {output_format}...")
8789
serialized = teamengine_runner.serialize_suite_result(
8890
parsed,
8991
output_format,
@@ -96,7 +98,7 @@ def parse_test_result(
9698
context=ctx.obj,
9799
)
98100
if output_format.print_pretty():
99-
context.rich_console.print(serialized)
101+
context.result_console.print(serialized)
100102
else:
101103
stdlib_print(serialized)
102104
raise typer.Exit(_get_exit_code(parsed, exit_with_error_on_suite_failed_result))
@@ -153,7 +155,7 @@ def execute_test_suite_from_github_actions(
153155
)
154156
context: config.CiteRunnerContext = ctx.obj
155157
if output_format.print_pretty():
156-
context.rich_console.print(serialized)
158+
context.result_console.print(serialized)
157159
else:
158160
stdlib_print(serialized)
159161
raise typer.Exit(
@@ -211,7 +213,7 @@ def execute_test_suite(
211213
if output_format == models.OutputFormat.RAW:
212214
logger.debug("Outputting raw response, as returned by teamengine...")
213215
if output_format.print_pretty():
214-
context.rich_console.print(serialized)
216+
context.result_console.print(serialized)
215217
else:
216218
stdlib_print(serialized)
217219
raise typer.Exit(
@@ -234,8 +236,9 @@ def _execute_test_suite(
234236
logger.debug(f"{locals()=}")
235237
client = httpx.Client(timeout=context.network_timeout_seconds)
236238
base_url = teamengine_base_url.strip("/")
239+
context.status_console.print("Checking if teamengine is ready...")
237240
if teamengine_runner.wait_for_teamengine_to_be_ready(client, base_url):
238-
logger.debug(
241+
context.status_console.print(
239242
f"Asking teamengine to execute test suite {test_suite_identifier!r}..."
240243
)
241244
try:
@@ -251,15 +254,23 @@ def _execute_test_suite(
251254
logger.exception("Unable to collect test suite execution results")
252255
raise SystemExit(1)
253256
else:
257+
context.status_console.print(
258+
"Received teamengine execution result in EARL format"
259+
)
254260
parsed = None
255261
if output_format == models.OutputFormat.RAW:
256-
logger.debug("Outputting raw response, as returned by teamengine...")
262+
context.status_console.print(
263+
"Outputting raw response, as returned by teamengine..."
264+
)
257265
serialized = raw_result
258266
else:
259-
logger.debug("Parsing test suite execution results...")
267+
context.status_console.print("Parsing test suite execution results...")
260268
parsed = teamengine_runner.parse_test_suite_result(
261269
raw_result, context.settings
262270
)
271+
context.status_console.print(
272+
f"Serializing parsed results to {output_format}..."
273+
)
263274
serialized = teamengine_runner.serialize_suite_result(
264275
parsed,
265276
output_format,

0 commit comments

Comments
 (0)