Smail/test/deployment/test_runtime_config.py
smail 6fe278f612
Some checks are pending
Security Checks / security (push) Waiting to run
补充真实配置历史写入和测试账号锁定复核
2026-09-21 01:21:13 +08:00

43 lines
1.6 KiB
Python

"""配置历史实机探针必须真实提交变更,不能以空表存在代替验收。"""
from pathlib import Path
import sys
import unittest
from unittest.mock import MagicMock
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / 'tools'))
from runtime_probe import verify_config_history
class RuntimeConfigTest(unittest.TestCase):
def client(self, final_generation=2, final_level='warn'):
client = MagicMock()
client.success.side_effect = [
{'available': True, 'activeGeneration': 1},
{'generation': 1, 'logLevel': 'info', 'databasePasswordStatus': {}},
{}, {'generation': 2, 'candidateId': 'candidate'}, {},
{'generation': final_generation, 'logLevel': final_level},
]
return client
def test_applies_real_change_and_verifies_generation(self):
client = self.client()
self.assertTrue(verify_config_history(client)['generation_advanced'])
calls = client.success.call_args_list
request = calls[2].args[1]
self.assertEqual(request['expectedGeneration'], 1)
self.assertNotIn('databasePasswordStatus', request['payload'])
self.assertEqual(calls[3].args[2], 'PUT')
self.assertEqual(calls[4].args[1]['candidateId'], 'candidate')
def test_rejects_unchanged_generation_or_unapplied_payload(self):
for generation, level in ((1, 'warn'), (2, 'info')):
with self.subTest(generation=generation, level=level):
with self.assertRaises(AssertionError):
verify_config_history(self.client(generation, level))
if __name__ == '__main__':
unittest.main()