payops_env / _test_import.py
padmapriyagosakan's picture
Fix grader import path: use root-level graders module instead of server.graders
220acb1
raw
history blame contribute delete
982 Bytes
"""Test that graders can be imported and called from repo root - simulating platform validator."""
import importlib
import sys
import os
# DO NOT add anything to sys.path - simulate platform environment
# (Just use the fact that cwd is the repo root, which Python adds to sys.path[0])
mod = importlib.import_module("graders")
grader_classes = [name for name in dir(mod) if name.endswith("Grader") and name != "_BaseGrader"]
print(f"Found {len(grader_classes)} grader classes")
results = []
for name in grader_classes:
cls = getattr(mod, name)
instance = cls()
result = instance()
score = result["score"]
ok = 0.0 < score < 1.0
results.append((name, score, ok))
if not ok:
print(f" FAIL: {name} score={score}")
passed = sum(1 for _, _, ok in results if ok)
print(f"Passed: {passed}/{len(results)}")
if passed == len(results):
print("ALL GRADERS PASS - import works from repo root")
else:
print("SOME GRADERS FAILED")
sys.exit(1)