20 lines
1.9 KiB
Python
20 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
import importlib.util,tempfile,unittest
|
|
from pathlib import Path
|
|
S=Path(__file__).with_name('engineering_shelf.py');spec=importlib.util.spec_from_file_location('shelf',S);M=importlib.util.module_from_spec(spec);spec.loader.exec_module(M)
|
|
class Tests(unittest.TestCase):
|
|
def test_full_registry_and_cumulative_order(self):
|
|
r=M.audit();self.assertEqual(r['outcome'],'PASS');self.assertEqual(r['module_count'],17);self.assertEqual(r['cumulative_gate_count'],17)
|
|
def test_sync_builds_live_current_without_claiming_engineering(self):
|
|
with tempfile.TemporaryDirectory() as t:
|
|
M.sync(Path(t));v=M.load(Path(t)/'CURRENT.json');self.assertFalse(v['reality_engineering_started']);self.assertEqual(v['zero_core_dispatch'],'NOT_ISSUED')
|
|
def test_exact_query_finds_current_and_legacy_parts(self):
|
|
self.assertEqual(M.query('HLP-LANG-MOD-005')['matches'][0]['module_id'],'HLP-LANG-MOD-005')
|
|
self.assertTrue(any(x.get('part_id')=='HLP-PART-MODEL-RECEIPT-DONOR-0_5_8' for x in M.query('旧模型回执供体')['matches']))
|
|
self.assertTrue(any(x.get('part_id')=='HLP-PART-MODEL-RECEIPT-DONOR-0_5_8' for x in M.query('旧模型回执供体现在能不能用')['matches']))
|
|
def test_resume_reports_language_complete_and_first_product_module(self):
|
|
r=M.resume();self.assertEqual(r['language_runtime_state'],'READY_17_MODULES_API_VERIFIED');self.assertEqual(r['current_product_module']['module_id'],'HLP-LANG-MOD-001');self.assertEqual(r['next_product_gate'],'GATE-HLP-STAGE1-001')
|
|
def test_smart_query_model_can_only_return_registered_ids(self):
|
|
def fake(_): return {'response':'{"module_ids":["HLP-LANG-MOD-015","FAKE"]}','selected_model':'mock'}
|
|
r=M.smart_query('监管审核',fake);self.assertEqual([x['module_id'] for x in r['matches']],['HLP-LANG-MOD-015'])
|
|
if __name__=='__main__':unittest.main()
|