Integrate delivered HQ memory, finite physical convoy and RHS WCS dependencies
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user