beam: fix pytest collection crash from module-level sys.exit in verify_wordcount_test
This commit is contained in:
1 parent
8d3081d0e1
commit
ef83d3d9bd
2 files changed
+48
No files matched your search
@@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Verification test for wordcount.py - must match wc output exactly."""
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import os
|
||||||
|
|
||||||
|
# Create test file with known content
|
||||||
|
test_content = "Hello world\nThis is a test file\nWith three lines\n"
|
||||||
|
test_file = "/root/troupe-standup/test_verification.txt"
|
||||||
|
with open(test_file, 'w') as f:
|
||||||
|
f.write(test_content)
|
||||||
|
|
||||||
|
# Get wc output
|
||||||
|
wc_result = subprocess.run(['wc', test_file], capture_output=True, text=True)
|
||||||
|
wc_lines, wc_words, wc_chars = map(int, wc_result.stdout.strip().split()[:3])
|
||||||
|
|
||||||
|
# Get wordcount.py output
|
||||||
|
pyc_result = subprocess.run(
|
||||||
|
['python3', '/root/.hermes/wizard-outputs/spark/wordcount.py', test_file],
|
||||||
|
capture_output=True, text=True
|
||||||
|
)
|
||||||
|
|
||||||
|
if pyc_result.returncode != 0:
|
||||||
|
print(f"FAIL: wordcount.py returned {pyc_result.returncode}")
|
||||||
|
print(pyc_result.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
parts = pyc_result.stdout.strip().split()
|
||||||
|
py_lines, py_words, py_chars = int(parts[0]), int(parts[1]), int(parts[2])
|
||||||
|
|
||||||
|
print(f"wc: {wc_lines} lines, {wc_words} words, {wc_chars} chars")
|
||||||
|
print(f"wordcount.py: {py_lines} lines, {py_words} words, {py_chars} chars")
|
||||||
|
|
||||||
|
if (wc_lines == py_lines and wc_words == py_words and wc_chars == py_chars):
|
||||||
|
print("PASS: outputs match")
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
print("FAIL: outputs do not match")
|
||||||
|
sys.exit(1)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# beam: fix pytest collection crash from module-level sys.exit
|
||||||
|
|
||||||
|
Renamed `verify_wordcount_test.py` -> `verify_wordcount.py` so pytest's
|
||||||
|
`*_test.py` collection pattern no longer imports a verification script whose
|
||||||
|
module-level code calls sys.exit(0), which aborted the whole test session
|
||||||
|
with INTERNALERROR.
|
||||||
|
|
||||||
|
Verification script still runs standalone and reports PASS.
|
||||||
Reference in new issue
Block a user