import hashlib import importlib.util from pathlib import Path import subprocess import unittest ROOT = Path(__file__).resolve().parents[1] DEPLOY = ROOT / 'deploy' / 'capacity50' def load_renderer(): spec = importlib.util.spec_from_file_location( 'capacity50_render_config', DEPLOY / 'render_config.py', ) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module class Capacity50DeploymentTests(unittest.TestCase): def test_renderer_changes_only_capacity_fields(self): renderer = load_renderer() original = ( b'global:\n' b' result_bundle_max_event_bytes: 67108864\n' b' result_bundle_max_items: 128\n' b' result_bundle_max_total_bytes: 536870912\n' b' projection_backlog_max_bytes: 268435456\n' b' projection_backlog_headroom_bytes: 134217728\n' b' keycheck_queue_max_items: 8192\n' b' keycheck_queue_max_bytes: 67108864\n' b' keycheck_candidates_per_event: 2000\n' b' keycheck_candidate_bytes_per_event: 2097152\n' b'unchanged:\n value: true\n' ) conservative = renderer.render(original, 'conservative') final = renderer.render(original, 'final') self.assertIn(b'remote_assignment_reserve_bytes: 67108864', conservative) self.assertIn(b'remote_assignment_max_active: 1', conservative) self.assertIn(b'remote_assignment_reserve_bytes: 2097152', final) self.assertIn(b'remote_assignment_max_active: 50', final) self.assertIn(b'keycheck_queue_max_items: 131072', final) self.assertIn(b'keycheck_queue_max_bytes: 134217728', final) self.assertTrue(final.endswith(b'unchanged:\n value: true\n')) self.assertNotEqual(hashlib.sha256(original).digest(), hashlib.sha256(final).digest()) def test_renderer_rejects_an_unknown_baseline(self): renderer = load_renderer() with self.assertRaisesRegex(ValueError, 'unexpected hard result limit'): renderer.render(b'global:\n result_bundle_max_event_bytes: 1\n', 'final') def test_remote_script_parses_as_bash(self): completed = subprocess.run( ['wsl.exe', '-d', 'Ubuntu-24.04', '--', 'bash', '-n', '/mnt/d/truf-workers/deploy/capacity50/deploy.sh'], stdin=subprocess.DEVNULL, capture_output=True, text=True, timeout=20, ) self.assertEqual(completed.returncode, 0, completed.stderr) def test_pipeline_lease_helper_uses_fenced_release(self): helper = (DEPLOY / 'release_stopped_pipeline_leases.py').read_text(encoding='ascii') self.assertIn('pg_try_advisory_lock', helper) self.assertIn('release_pipeline_lease(', helper) self.assertNotIn('UPDATE pipeline_leases', helper) def test_wrapper_keeps_cleanup_shell_after_deploy(self): wrapper = (ROOT / 'deploy_capacity50.ps1').read_text(encoding='ascii') self.assertIn('bash deploy.sh $remoteMode', wrapper) self.assertNotIn('exec bash deploy.sh $remoteMode', wrapper) if __name__ == '__main__': unittest.main()