52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""Test script for line_counter.py - verifies utility works correctly."""
|
|
import subprocess
|
|
import tempfile
|
|
import json
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
def test_line_counter():
|
|
"""Test the line_counter utility with a temp file."""
|
|
# Create test file with known content
|
|
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
|
|
test_file = f.name
|
|
for i in range(10):
|
|
f.write(f"line {i+1}\n")
|
|
|
|
try:
|
|
# Test count mode
|
|
result = subprocess.run(
|
|
['python3', '/root/.hermes/wizard-outputs/spark/line_counter.py', test_file, 'count'],
|
|
capture_output=True, text=True
|
|
)
|
|
|
|
if result.returncode != 0:
|
|
print(f"FAIL: count mode returned {result.returncode}")
|
|
print(f"stderr: {result.stderr}")
|
|
return False
|
|
|
|
count = int(result.stdout.strip())
|
|
if count != 10:
|
|
print(f"FAIL: expected 10 lines, got {count}")
|
|
return False
|
|
|
|
# Test non-existent file
|
|
result = subprocess.run(
|
|
['python3', '/root/.hermes/wizard-outputs/spark/line_counter.py', '/nonexistent/file.txt', 'count'],
|
|
capture_output=True, text=True
|
|
)
|
|
|
|
if result.returncode == 0:
|
|
print("FAIL: non-existent file should return error")
|
|
return False
|
|
|
|
print("PASS: All tests successful")
|
|
print(f"Line count utility verified: {count} lines counted correctly")
|
|
return True
|
|
|
|
finally:
|
|
Path(test_file).unlink(missing_ok=True)
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(0 if test_line_counter() else 1) |