Initial server source import
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user