Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -76,6 +76,21 @@ class SourceBundleTests(unittest.TestCase):
|
||||
self.assertNotEqual(first, second)
|
||||
self.assertNotEqual(manifest['files'][name], updated['files'][name])
|
||||
|
||||
def test_atlas_model_requires_source_and_imported_resource(self):
|
||||
bundle.build(self.root)
|
||||
(self.root / bundle.ATLAS_ROOT / 'ERR_Atlas.fbx').unlink()
|
||||
with self.assertRaisesRegex(ValueError, 'atlas model lacks source/runtime/metadata'):
|
||||
bundle.build(self.root)
|
||||
|
||||
def test_atlas_binary_admission_does_not_allow_unrelated_models(self):
|
||||
folder = self.root / bundle.ATLAS_ROOT
|
||||
(folder / 'ERR_Atlas.xob').write_bytes(b'not a compiled mesh')
|
||||
with self.assertRaisesRegex(ValueError, 'invalid atlas model signature'):
|
||||
bundle.build(self.root)
|
||||
(folder / 'Unreviewed.xob').write_bytes(b'FORMxxxxXOB9')
|
||||
with self.assertRaisesRegex(ValueError, 'unreviewed addon source/resource format'):
|
||||
bundle.build(self.root)
|
||||
|
||||
def test_identity_and_external_dependency_refused(self):
|
||||
name = 'addons/core/addon.gproj'
|
||||
self.edit(name, '2528466DE220D91C', '1111111111111111')
|
||||
@@ -84,6 +99,17 @@ class SourceBundleTests(unittest.TestCase):
|
||||
self.edit(name, '58D0FB3206B6F859', '5F16D7E4A1CBE075')
|
||||
with self.assertRaisesRegex(ValueError, 'identity/dependency'): bundle.build(self.root)
|
||||
|
||||
def test_escaped_audio_graph_references_are_checked(self):
|
||||
name = 'addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c'
|
||||
bundle.build(self.root)
|
||||
self.edit(name, 'D4A1555B02A77EDA', '1111111111111111')
|
||||
with self.assertRaisesRegex(ValueError, 'unresolved or nonvanilla.*Vehicles_Occlusion'):
|
||||
bundle.build(self.root)
|
||||
self.edit(name, '1111111111111111', 'D4A1555B02A77EDA')
|
||||
self.edit(name, 'Vehicles_Occlusion_OutsideVehicleSource.sig', 'Missing.sig')
|
||||
with self.assertRaisesRegex(ValueError, 'unresolved or nonvanilla.*Missing.sig'):
|
||||
bundle.build(self.root)
|
||||
|
||||
def test_missing_project_refused(self):
|
||||
(self.root / 'addons/core/addon.gproj').unlink()
|
||||
with self.assertRaisesRegex(ValueError, 'identity/dependency'): bundle.build(self.root)
|
||||
|
||||
Reference in New Issue
Block a user