hugging-research / tests /run_all_hf_tools_tests.py
daqc's picture
Upload 61 files
b67af4a verified
raw
history blame
3.59 kB
import subprocess
import sys
import os
from datetime import datetime
TESTS = [
"test_hf_models_search.py",
"test_hf_model_info.py",
"test_hf_datasets_search.py",
"test_hf_dataset_info.py",
"test_hf_spaces_search.py",
"test_hf_space_info.py",
"test_hf_user_info.py",
"test_hf_collections_list.py",
"test_hf_collection_get.py",
"test_hf_paper_info.py",
"test_hf_paper_repos.py",
"test_hf_daily_papers.py",
"test_hf_repo_info.py",
"test_hf_site_search.py",
"test_hf_report_generate.py",
"test_hf_generate_dashboard_report.py",
]
def main():
base = os.path.dirname(__file__)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
out_path = os.path.join(base, f"hf_tools_tests_output_{timestamp}.txt")
ok = True
with open(out_path, "w", encoding="utf-8", errors="replace") as f:
f.write(f"Hugging Face Tools Test Run β€” {timestamp}\n")
f.write("=" * 80 + "\n\n")
for t in TESTS:
path = os.path.join(base, t)
header = f"=== Running {t} ===\n"
print("\n" + header, end="")
f.write(header)
# Write simple INPUT info: command and forward() snippet if found
f.write(f"Command: {sys.executable} {path}\n")
try:
with open(path, "r", encoding="utf-8", errors="replace") as tf:
src = tf.read()
snippet = ""
key = "tool.forward("
idx = src.find(key)
if idx != -1:
end = idx
# capture up to 500 chars from forward( to show parameters
snippet = src[idx: idx + 500]
else:
# fallback: show main() body first 400 chars
m_idx = src.find("def main():")
snippet = src[m_idx: m_idx + 400] if m_idx != -1 else src[:400]
f.write("--- INPUT (snippet) ---\n")
f.write(snippet)
if not snippet.endswith("\n"):
f.write("\n")
except Exception as e:
f.write(f"--- INPUT (unavailable): {e}\n")
try:
result = subprocess.run(
[sys.executable, path],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
encoding="utf-8",
errors="replace",
)
f.write("--- STDOUT ---\n")
f.write(result.stdout or "")
if not result.stdout.endswith("\n"):
f.write("\n")
f.write("--- STDERR ---\n")
f.write(result.stderr or "")
if not result.stderr.endswith("\n"):
f.write("\n")
status_line = f"[OK] {t}\n" if result.returncode == 0 else f"[FAIL] {t}\n"
f.write(status_line)
f.write("-" * 80 + "\n\n")
if result.returncode != 0:
ok = False
print(status_line.strip())
except Exception as e:
ok = False
err_line = f"[ERROR] {t}: {e}\n"
f.write(err_line)
f.write("-" * 80 + "\n\n")
print(err_line.strip())
print(f"\nResults saved to: {out_path}")
sys.exit(0 if ok else 1)
if __name__ == "__main__":
main()