mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-07 06:44:57 +08:00
Fix Python build check script. (#911)
* Fix Python build check script. * Update python code check workflow * Update python test script. * Compatible with Python >=3.9 * Compatible with Python >=3.10 * Fix errors in Windows * test * Add Python version in installation.md * Update test_all.py
This commit is contained in:
32
codes/python/test_all.py
Normal file
32
codes/python/test_all.py
Normal file
@ -0,0 +1,32 @@
|
||||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
|
||||
env = os.environ.copy()
|
||||
env["PYTHONIOENCODING"] = "utf-8"
|
||||
|
||||
if __name__ == "__main__":
|
||||
# find source code files
|
||||
src_paths = sorted(glob.glob("codes/python/chapter_*/*.py"))
|
||||
errors = []
|
||||
|
||||
# run python code
|
||||
for src_path in src_paths:
|
||||
process = subprocess.Popen(
|
||||
["python", src_path],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
env=env,
|
||||
)
|
||||
# Wait for the process to complete, and get the output and error messages
|
||||
stdout, stderr = process.communicate()
|
||||
# Check the exit status
|
||||
exit_status = process.returncode
|
||||
if exit_status != 0:
|
||||
errors.append(stderr)
|
||||
|
||||
print(f"Tested {len(src_paths)} files")
|
||||
print(f"Found exception in {len(errors)} files")
|
||||
if len(errors) > 0:
|
||||
raise RuntimeError("\n\n".join(errors))
|
Reference in New Issue
Block a user