import os import subprocess import sys def run_tests(): test_dir = "tests" test_files = [f for f in os.listdir(test_dir) if f.startswith("test_") and f.endswith(".py")] test_files.sort() batch_size = 4 all_failed = [] print(f"Starting test execution of {len(test_files)} files in batches of {batch_size}...") for i in range(0, len(test_files), batch_size): batch = test_files[i:i + batch_size] cmd = ["uv", "run", "pytest", "--maxfail=10"] + [os.path.join(test_dir, f) for f in batch] print(f"\nBatch {i//batch_size + 1}: {' '.join(batch)}") try: subprocess.run(cmd, check=True) except subprocess.CalledProcessError: print(f"Batch {i//batch_size + 1} failed.") all_failed.extend(batch) if all_failed: print("\n" + "="*30) print(f"Total batches with failures: {len(all_failed)//batch_size + 1 if len(all_failed)%batch_size else len(all_failed)//batch_size}") print("Files in failed batches:") for f in all_failed: print(f" - {f}") print("="*30) else: print("\nAll batches passed successfully!") if __name__ == "__main__": run_tests()