Integrate delivered HQ memory, finite physical convoy and RHS WCS dependencies

This commit is contained in:
2026-09-20 02:55:30 +02:00
parent e7b4141f69
commit a2aab17171
230 changed files with 37976 additions and 139 deletions
+14 -3
View File
@@ -23,7 +23,7 @@ class NativePackageTests(unittest.TestCase):
self.source = self.home/'original'
shutil.copytree(ROOT/'addons', self.source/'addons')
(self.source/'docs').mkdir()
for name in ('addons.json', 'vanilla-resources.json', 'acceptance.json'):
for name in ('addons.json', 'vanilla-resources.json', 'acceptance.json', 'external-addons.json'):
shutil.copy2(ROOT/'docs'/name, self.source/'docs'/name)
self.session = self.home/'session'
self.compat = self.home/'compat'
@@ -36,6 +36,15 @@ class NativePackageTests(unittest.TestCase):
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text('synthetic installed-file double; never executed')
def external_fixture(self):
# Synthetic exact closure for orchestration doubles; never an installed addon or engine.
import test_external_addons
fixture = test_external_addons.ExternalAddonsTests()
fixture.setUp()
self.addCleanup(fixture.doCleanups)
(self.source/'docs/external-addons.json').write_text(json.dumps(fixture.value))
return fixture.source
def test_closure_order(self):
self.assertEqual(n.project_order('core'), ['core'])
self.assertEqual(n.project_order('ai'), ['core', 'ai'])
@@ -267,7 +276,7 @@ class NativePackageTests(unittest.TestCase):
import io
fresh = Path('/tmp')/('erri-package-orchestration-'+uuid.uuid4().hex)
self.addCleanup(lambda: shutil.rmtree(fresh, ignore_errors=True))
args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh, project='chat', timeout=30)
args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh, project='chat', timeout=30, external_addons=self.external_fixture())
with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle'), patch.object(n.shutil, 'which', return_value='/mock'), \
patch.object(n, 'run_project', return_value={'candidate_created':False}) as run, patch.object(n.subprocess, 'Popen') as child, contextlib.redirect_stdout(io.StringIO()):
self.assertEqual(n.run(args, self.source), 1)
@@ -298,7 +307,8 @@ class NativePackageTests(unittest.TestCase):
fresh = Path('/tmp')/('erri-package-orchestration-'+uuid.uuid4().hex)
self.addCleanup(lambda: shutil.rmtree(fresh, ignore_errors=True))
args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh,
project='chat', timeout=30, continue_on_failure=continuation, exit_after_init=exit_after_init)
project='chat', timeout=30, continue_on_failure=continuation, exit_after_init=exit_after_init,
external_addons=self.external_fixture())
with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle', side_effect=idle), \
patch.object(n.shutil, 'which', return_value='/mock'), \
patch.object(n, 'run_project', side_effect=reports) as run, \
@@ -311,6 +321,7 @@ class NativePackageTests(unittest.TestCase):
def completed_report(success=False, **changes):
report = {'candidate_created': success, 'cleanup_confirmed': True,
'runner_error': None, 'copied_authored_unchanged': True,
'profile_addons_unchanged': True, 'external_addons_unchanged_after_run': True,
'completion_observed': 'native-child-exited',
'errors': [] if success else ['RESOURCES (E): synthetic shutdown leak']}
report.update(changes)