fix(ci): resolve unit_tests and integration_tests CI failures
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 27s
CI / security (pull_request) Failing after 15s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Failing after 2m42s
CI / build (pull_request) Successful in 15s
CI / unit_tests (pull_request) Successful in 6m27s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 5m11s

- Fix Rich Console line-wrapping breaking assertions in
  context_unit_tests_steps.py: collapse newlines before checking for
  filenames and overflow summaries (CI temp paths exceed 80 columns)
- Fix features.mocks import failure in database_integration.robot:
  replace hardcoded sys.path '/app' with portable ${CURDIR}/..
- Fix --load-context help text assertions in load_context_test.robot:
  merge stderr into stdout via stderr=STDOUT and remove duplicate test
- Add standalone dead_code nox session running vulture directly
- Rename security nox session to security_scan to match CI references
- Restore --exclude discovery to integration_tests nox session (lost
  during merge conflict resolution)
This commit is contained in:
2026-02-13 00:15:58 +00:00
parent 3e3530de48
commit 321ab18a37
5 changed files with 56 additions and 18 deletions
+7 -3
View File
@@ -593,11 +593,13 @@ def step_check_already_tracked(context):
f"Output: {context.result.output}"
)
clean_output = strip_ansi_codes(context.result.output)
# Collapse Rich line-wraps so long paths broken across lines are searchable
unwrapped_output = clean_output.replace("\n", "")
assert "File(s) already in context" in clean_output, (
f"Expected warning about already tracked files.\n"
f"Output: {context.result.output}"
)
assert "... and 2 more files" in clean_output, (
assert "... and 2 more files" in unwrapped_output, (
f"Expected summary of remaining already tracked files.\n"
f"Output: {context.result.output}"
)
@@ -611,17 +613,19 @@ def step_check_already_tracked_without_summary(context):
f"Output: {context.result.output}"
)
clean_output = strip_ansi_codes(context.result.output)
# Collapse Rich line-wraps so long paths broken across lines are searchable
unwrapped_output = clean_output.replace("\n", "")
assert "File(s) already in context" in clean_output, (
f"Expected warning about already tracked files.\n"
f"Output: {context.result.output}"
)
assert "... and" not in clean_output, (
assert "... and" not in unwrapped_output, (
f"Did not expect overflow summary for fewer than 11 files.\n"
f"Output: {context.result.output}"
)
if context.already_paths:
expected_name = context.already_paths[0].name
assert expected_name in clean_output, (
assert expected_name in unwrapped_output, (
f"Expected tracked file name '{expected_name}' in output.\n"
f"Output: {context.result.output}"
)