chore: delete legacy run_tests_batched.py (was preserved for one cycle)
This commit is contained in:
+18
-18
@@ -22,7 +22,7 @@ active = "C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml"
|
||||
[gui]
|
||||
separate_message_panel = false
|
||||
separate_response_panel = false
|
||||
separate_tool_calls_panel = true
|
||||
separate_tool_calls_panel = false
|
||||
bg_shader_enabled = false
|
||||
crt_filter_enabled = false
|
||||
separate_task_dag = false
|
||||
@@ -52,7 +52,7 @@ separate_external_tools = false
|
||||
"Operations Hub" = true
|
||||
Message = false
|
||||
Response = false
|
||||
"Tool Calls" = true
|
||||
"Tool Calls" = false
|
||||
"Text Viewer" = false
|
||||
Theme = true
|
||||
"Log Management" = true
|
||||
@@ -66,35 +66,35 @@ Diagnostics = false
|
||||
palette = "Solarized Light"
|
||||
font_path = "fonts/MapleMono-Regular.ttf"
|
||||
font_size = 20.0
|
||||
scale = 1.0199999809265137
|
||||
scale = 1.0
|
||||
transparency = 1.0
|
||||
child_transparency = 1.0
|
||||
|
||||
[theme.tone_mapping.moss]
|
||||
brightness = 0.7699999809265137
|
||||
contrast = 0.8700000047683716
|
||||
gamma = 1.0
|
||||
|
||||
[theme.tone_mapping.solarized_light]
|
||||
brightness = 0.6899999976158142
|
||||
contrast = 0.8600000143051147
|
||||
gamma = 0.7699999809265137
|
||||
|
||||
[theme.tone_mapping."Solarized Light"]
|
||||
brightness = 0.6800000071525574
|
||||
contrast = 0.7400000095367432
|
||||
gamma = 1.0499999523162842
|
||||
|
||||
[theme.tone_mapping.Binks]
|
||||
brightness = 0.5600000023841858
|
||||
contrast = 0.7900000214576721
|
||||
gamma = 2.2100000381469727
|
||||
|
||||
[theme.tone_mapping.moss]
|
||||
brightness = 1.059999942779541
|
||||
contrast = 0.5799999833106995
|
||||
gamma = 1.059999942779541
|
||||
|
||||
[theme.tone_mapping.gray_variations]
|
||||
brightness = 0.7699999809265137
|
||||
contrast = 0.7200000286102295
|
||||
gamma = 0.6899999976158142
|
||||
|
||||
[theme.tone_mapping.Binks]
|
||||
brightness = 0.47999998927116394
|
||||
contrast = 0.8399999737739563
|
||||
gamma = 2.2100000381469727
|
||||
|
||||
[theme.tone_mapping."Solarized Light"]
|
||||
brightness = 0.4699999988079071
|
||||
contrast = 0.800000011920929
|
||||
gamma = 0.6700000166893005
|
||||
|
||||
[mma]
|
||||
max_workers = 4
|
||||
|
||||
|
||||
+29
-29
@@ -56,8 +56,8 @@ Collapsed=0
|
||||
DockId=0x00000010,5
|
||||
|
||||
[Window][Tool Calls]
|
||||
Pos=1138,29
|
||||
Size=1437,1820
|
||||
Pos=1124,28
|
||||
Size=1365,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000006,2
|
||||
|
||||
@@ -76,8 +76,8 @@ Collapsed=0
|
||||
DockId=0xAFC85805,2
|
||||
|
||||
[Window][Theme]
|
||||
Pos=0,29
|
||||
Size=1136,1820
|
||||
Pos=0,28
|
||||
Size=1039,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000010,0
|
||||
|
||||
@@ -105,26 +105,26 @@ Collapsed=0
|
||||
DockId=0x0000000D,0
|
||||
|
||||
[Window][Discussion Hub]
|
||||
Pos=1138,29
|
||||
Size=1437,1820
|
||||
Pos=1041,28
|
||||
Size=1448,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000006,0
|
||||
|
||||
[Window][Operations Hub]
|
||||
Pos=0,29
|
||||
Size=1136,1820
|
||||
Pos=0,28
|
||||
Size=1039,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000010,4
|
||||
|
||||
[Window][Files & Media]
|
||||
Pos=0,29
|
||||
Size=1136,1820
|
||||
Pos=0,28
|
||||
Size=1039,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000010,2
|
||||
|
||||
[Window][AI Settings]
|
||||
Pos=0,29
|
||||
Size=1136,1820
|
||||
Pos=0,28
|
||||
Size=1039,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000010,3
|
||||
|
||||
@@ -140,8 +140,8 @@ Collapsed=0
|
||||
DockId=0x00000006,2
|
||||
|
||||
[Window][Log Management]
|
||||
Pos=1138,29
|
||||
Size=1437,1820
|
||||
Pos=1041,28
|
||||
Size=1448,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000006,1
|
||||
|
||||
@@ -409,8 +409,8 @@ Collapsed=0
|
||||
DockId=0x00000006,1
|
||||
|
||||
[Window][Project Settings]
|
||||
Pos=0,29
|
||||
Size=1136,1820
|
||||
Pos=0,28
|
||||
Size=1039,1729
|
||||
Collapsed=0
|
||||
DockId=0x00000010,1
|
||||
|
||||
@@ -516,8 +516,8 @@ Size=1801,1532
|
||||
Collapsed=0
|
||||
|
||||
[Window][Structural File Editor]
|
||||
Pos=82,172
|
||||
Size=2176,1441
|
||||
Pos=76,51
|
||||
Size=2345,1687
|
||||
Collapsed=0
|
||||
|
||||
[Window][Text_Viewer_Unified]
|
||||
@@ -650,9 +650,9 @@ Column 0 Width=233
|
||||
Column 1 Weight=1.0000
|
||||
|
||||
[Table][0x1DA1F4A6,2]
|
||||
RefScale=21
|
||||
RefScale=20
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Width=534
|
||||
Column 1 Width=576
|
||||
|
||||
[Table][0x5B562C13,3]
|
||||
RefScale=21
|
||||
@@ -682,10 +682,10 @@ Column 1 Width=80
|
||||
Column 2 Width=150
|
||||
|
||||
[Table][0x7804123E,3]
|
||||
RefScale=21
|
||||
Column 0 Width=103
|
||||
RefScale=25
|
||||
Column 0 Width=122
|
||||
Column 1 Weight=1.0000
|
||||
Column 2 Width=279
|
||||
Column 2 Width=221
|
||||
|
||||
[Table][0x09B0112E,3]
|
||||
RefScale=20
|
||||
@@ -699,8 +699,8 @@ Column 0 Width=30
|
||||
Column 1 Width=30
|
||||
|
||||
[Table][0x9D36FCE8,2]
|
||||
RefScale=21
|
||||
Column 0 Width=736
|
||||
RefScale=20
|
||||
Column 0 Width=700
|
||||
Column 1 Weight=1.0000
|
||||
|
||||
[Table][0xD9B78BEB,4]
|
||||
@@ -834,13 +834,13 @@ Column 2 Weight=1.0000
|
||||
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
||||
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
||||
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,29 Size=2575,1820 Split=X
|
||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=2489,1729 Split=X
|
||||
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
|
||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
||||
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=916,1681 Split=Y Selected=0x3F1379AF
|
||||
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x7BD57D6A
|
||||
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=1039,1681 Split=Y Selected=0x3F1379AF
|
||||
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x8CA2375C
|
||||
DockNode ID=0x00000011 Parent=0x00000005 SizeRef=983,184 Selected=0x432BAE4E
|
||||
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1437,1681 Selected=0x6F2B5B04
|
||||
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1448,1681 Selected=0x6F2B5B04
|
||||
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
||||
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=488,1183 Selected=0x3AEC3498
|
||||
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
view_presets = []
|
||||
|
||||
[project]
|
||||
name = "project"
|
||||
git_dir = ""
|
||||
system_prompt = ""
|
||||
execution_mode = "native"
|
||||
word_wrap = true
|
||||
auto_scroll_comms = true
|
||||
auto_scroll_tool_calls = true
|
||||
|
||||
[output]
|
||||
output_dir = "./md_gen"
|
||||
@@ -57,47 +52,8 @@ set_file_slice = false
|
||||
py_update_definition = false
|
||||
py_set_signature = false
|
||||
py_set_var_declaration = false
|
||||
edit_file = true
|
||||
py_remove_def = true
|
||||
py_add_def = true
|
||||
py_move_def = true
|
||||
py_region_wrap = true
|
||||
ts_c_get_skeleton = true
|
||||
ts_cpp_get_skeleton = true
|
||||
ts_c_get_code_outline = true
|
||||
ts_cpp_get_code_outline = true
|
||||
ts_c_get_definition = true
|
||||
ts_cpp_get_definition = true
|
||||
ts_c_get_signature = true
|
||||
ts_cpp_get_signature = true
|
||||
ts_c_update_definition = true
|
||||
ts_cpp_update_definition = true
|
||||
derive_code_path = true
|
||||
bd_create = true
|
||||
bd_update = true
|
||||
bd_list = true
|
||||
bd_ready = true
|
||||
|
||||
[mma]
|
||||
epic = ""
|
||||
active_track_id = ""
|
||||
tracks = []
|
||||
|
||||
[mma.tier_models."Tier 1"]
|
||||
model = "gemini-3.1-pro-preview"
|
||||
provider = "gemini"
|
||||
|
||||
[mma.tier_models."Tier 2"]
|
||||
model = "gemini-3-flash-preview"
|
||||
provider = "gemini"
|
||||
|
||||
[mma.tier_models."Tier 3"]
|
||||
model = "gemini-2.5-flash-lite"
|
||||
provider = "gemini"
|
||||
|
||||
[mma.tier_models."Tier 4"]
|
||||
model = "gemini-2.5-flash-lite"
|
||||
provider = "gemini"
|
||||
|
||||
[conductor]
|
||||
dir = "conductor"
|
||||
|
||||
@@ -6,12 +6,8 @@ roles = [
|
||||
"Context",
|
||||
]
|
||||
active = "main"
|
||||
auto_add = false
|
||||
|
||||
[discussions.main]
|
||||
git_commit = ""
|
||||
last_updated = "2026-06-08T00:35:00"
|
||||
last_updated = "2026-06-08T01:05:27"
|
||||
history = []
|
||||
context_snapshot = []
|
||||
sent_markdown = ""
|
||||
sent_system_prompt = ""
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
"""Run the test suite in alphabetical batches of 32 files.
|
||||
|
||||
Behavior:
|
||||
- Per-batch subprocess timeout of 180s. Exceeding the timeout counts
|
||||
as a batch failure (the watchdog in tests/conftest.py bounds the
|
||||
actual pytest hang at 30s, but the outer timeout is the
|
||||
runner-level safety net).
|
||||
- Per-batch elapsed time reported in the header line.
|
||||
- pytest's own exit-code based failure detection (subprocess
|
||||
CalledProcessError) is preserved for batches that finish but
|
||||
contain test failures.
|
||||
- Final summary lists all files in any failed batch (per file, not
|
||||
per batch, so the user can re-run individual files).
|
||||
|
||||
Usage:
|
||||
uv run python scripts/run_tests_batched.py
|
||||
uv run python scripts/run_tests_batched.py --batch-size 16
|
||||
uv run python scripts/run_tests_batched.py --timeout 300
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
|
||||
|
||||
def run_tests(batch_size: int, timeout: int) -> int:
|
||||
test_dir: str = "tests"
|
||||
if not os.path.isdir(test_dir):
|
||||
print(f"ERROR: '{test_dir}' directory not found", file=sys.stderr)
|
||||
return 2
|
||||
test_files: list[str] = sorted(
|
||||
f for f in os.listdir(test_dir)
|
||||
if f.startswith("test_") and f.endswith(".py")
|
||||
)
|
||||
if not test_files:
|
||||
print(f"ERROR: no test files found in '{test_dir}'", file=sys.stderr)
|
||||
return 2
|
||||
batches: list[list[str]] = [
|
||||
test_files[i : i + batch_size] for i in range(0, len(test_files), batch_size)
|
||||
]
|
||||
failed_files: list[str] = []
|
||||
batch_timings: list[float] = []
|
||||
|
||||
print(f"Starting test execution of {len(test_files)} files in {len(batches)} batches of {batch_size} (timeout {timeout}s per batch)...")
|
||||
print()
|
||||
|
||||
for batch_idx, batch in enumerate(batches, start=1):
|
||||
cmd: list[str] = ["uv", "run", "pytest", "--maxfail=10"] + [
|
||||
os.path.join(test_dir, f) for f in batch
|
||||
]
|
||||
print(f"Batch {batch_idx}/{len(batches)} ({len(batch)} files):")
|
||||
start: float = time.perf_counter()
|
||||
try:
|
||||
subprocess.run(cmd, check=True, timeout=timeout)
|
||||
except subprocess.TimeoutExpired:
|
||||
elapsed: float = time.perf_counter() - start
|
||||
batch_timings.append(elapsed)
|
||||
print(f" >>> Batch {batch_idx} TIMED OUT after {elapsed:.1f}s (limit {timeout}s)")
|
||||
failed_files.extend(batch)
|
||||
except subprocess.CalledProcessError as e:
|
||||
elapsed = time.perf_counter() - start
|
||||
batch_timings.append(elapsed)
|
||||
print(f" >>> Batch {batch_idx} FAILED after {elapsed:.1f}s (pytest exit {e.returncode})")
|
||||
failed_files.extend(batch)
|
||||
else:
|
||||
elapsed = time.perf_counter() - start
|
||||
batch_timings.append(elapsed)
|
||||
print(f" >>> Batch {batch_idx} passed in {elapsed:.1f}s")
|
||||
print()
|
||||
|
||||
print("=" * 70)
|
||||
if failed_files:
|
||||
failed_batch_count: int = sum(
|
||||
1 for batch in batches if any(f in failed_files for f in batch)
|
||||
)
|
||||
print(f"Total batches: {len(batches)}; failed batches: {failed_batch_count}")
|
||||
print(f"Failed files: {len(failed_files)}")
|
||||
print("=" * 70)
|
||||
for f in failed_files:
|
||||
print(f" - {f}")
|
||||
print("=" * 70)
|
||||
return 1
|
||||
total_time: float = sum(batch_timings)
|
||||
avg: float = total_time / max(len(batch_timings), 1)
|
||||
print(f"All {len(batches)} batches passed in {total_time:.1f}s (avg {avg:.1f}s per batch)")
|
||||
print("=" * 70)
|
||||
return 0
|
||||
|
||||
|
||||
def main() -> None:
|
||||
ap: argparse.ArgumentParser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0])
|
||||
ap.add_argument("--batch-size", type=int, default=32, help="tests per batch (default: 32)")
|
||||
ap.add_argument("--timeout", type=int, default=180, help="seconds per batch (default: 180)")
|
||||
args: argparse.Namespace = ap.parse_args()
|
||||
if args.batch_size <= 0:
|
||||
print("ERROR: --batch-size must be positive", file=sys.stderr)
|
||||
sys.exit(2)
|
||||
if args.timeout <= 0:
|
||||
print("ERROR: --timeout must be positive", file=sys.stderr)
|
||||
sys.exit(2)
|
||||
sys.exit(run_tests(args.batch_size, args.timeout))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user