Advance standalone admission, finite artillery and native validation

This commit is contained in:
2026-09-19 09:02:31 +02:00
parent af5146a317
commit 40a474934c
532 changed files with 56456 additions and 199 deletions
+15 -3
View File
@@ -179,7 +179,7 @@ class GameRunnerTests(unittest.TestCase):
def test_ready_requires_game_module_without_workbench_and_normal_phase(self):
module = 'SCRIPT : Module: Game; loaded 12x files; defines: "PLATFORM_WINDOWS,ENABLE_DIAG"; CRC32: a\n'
phase = 'SCRIPT : Rereintroduced [mission]: phase 0 -> 1\nSCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems\n'
phase = 'SCRIPT : Rereintroduced [mission]: phase 0 -> 1\nSCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems\nSCRIPT : ERR ORDINARY: local participant verified project=core phase=prison\n'
self.assertTrue(runner.game_evidence(module+phase)['ready'])
self.assertFalse(runner.game_evidence(phase)['ready'])
self.assertFalse(runner.game_evidence(module)['ready'])
@@ -190,8 +190,8 @@ class GameRunnerTests(unittest.TestCase):
def test_startup_requires_selected_header_and_actual_systems_marker(self):
module = 'SCRIPT : Module: Game; defines: "PLATFORM_WINDOWS"; CRC32: a\n'
phase = 'SCRIPT : Rereintroduced [mission]: phase 0 -> 1\n'
core = 'SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems\n'
chat = 'SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems\n'
core = 'SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems\nSCRIPT : ERR ORDINARY: local participant verified project=core phase=prison\n'
chat = 'SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems\nSCRIPT : ERR ORDINARY: local participant verified project=chat phase=prison\n'
self.assertFalse(runner.game_evidence(module+phase, 'core')['ready'])
self.assertFalse(runner.game_evidence(module+phase+core, 'chat')['ready'])
self.assertTrue(runner.game_evidence(module+phase+chat, 'chat')['ready'])
@@ -202,6 +202,18 @@ class GameRunnerTests(unittest.TestCase):
self.assertTrue(result['failed'])
self.assertFalse(result['ready'])
def test_world_without_normal_local_admission_is_not_ready(self):
world = ('SCRIPT : Module: Game; defines: "PLATFORM_WINDOWS"; CRC32: a\n'
'SCRIPT : Rereintroduced [mission]: phase 0 -> 1\n'
'SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems\n')
result = runner.game_evidence(world, 'core')
self.assertTrue(result['scenario_header_verified'])
self.assertFalse(result['local_participant_verified'])
self.assertFalse(result['ready'])
self.assertFalse(result['failed']) # incomplete admission may still arrive
self.assertFalse(runner.game_evidence(world+'ERR ORDINARY: local participant verified project=chat phase=prison\n', 'core')['ready'])
self.assertTrue(runner.game_evidence(world+'ERR ORDINARY: local participant verified project=core phase=prison\n', 'core')['ready'])
def test_no_engine_or_audio_spawn_during_import_and_process_refusal(self):
with patch.object(runner, 'assert_no_game', side_effect=ValueError('existing game')):
with patch.object(runner.subprocess, 'Popen') as spawn, patch.object(runner.subprocess, 'run') as commands: