#!/usr/bin/env python3 """Test that linecount_pycount.py produces correct output.""" import subprocess import sys def test_linecount(): # Test on fibonacci.py which we know has 49 total lines result = subprocess.run( ['python3', 'linecount_pycount.py', 'fibonacci.py'], capture_output=True, text=True ) print("Output:", result.stdout) print("Exit code:", result.returncode) # Parse output lines = result.stdout.strip().split('\n') total_line = [l for l in lines if l.startswith('Total lines:')] code_line = [l for l in lines if l.startswith('Python code lines:')] assert total_line, "Missing 'Total lines:' output" assert code_line, "Missing 'Python code lines:' output" total = int(total_line[0].split(':')[1].strip()) code = int(code_line[0].split(':')[1].strip()) # fibonacci.py has 49 lines, 40 code lines assert total == 49, f"Expected 49 total lines, got {total}" assert code == 40, f"Expected 40 code lines, got {code}" print("TEST PASSED: linecount_pycount.py correctly counts lines") return 0 if __name__ == '__main__': sys.exit(test_linecount())