feat: 接入远程订阅策略门禁 T-705
Tests / Python 3.11 / Windows (push) Has been cancelled

This commit is contained in:
chengma
2026-07-28 15:42:19 +08:00
parent 593c6f77cb
commit df9da63841
15 changed files with 925 additions and 73 deletions
+64
View File
@@ -120,6 +120,70 @@ class UpdateCheckTests(unittest.TestCase):
self.assertEqual("", result.package_format)
self.assertEqual(0, result.updater_protocol)
def test_check_for_update_parses_client_policy_without_affecting_release(self):
result = update_check.check_for_update(
current_version="0.1.5",
url="https://cm.example.test/api/v1/client/releases/latest?platform=windows",
fetcher=lambda _url, _timeout: {
"platform": "windows",
"release": {
"version": "0.1.6",
"force_update": False,
},
"client_policy": {
"policy_version": 1,
"subscription_check_enabled": True,
"subscription_enforcement_enabled": True,
"updated_at": "2026-07-28T15:19:19+08:00",
},
},
)
self.assertEqual("0.1.6", result.latest_version)
self.assertEqual("enforce", result.client_policy.mode)
self.assertEqual("", result.client_policy_error)
def test_invalid_client_policy_does_not_break_update_detection(self):
result = update_check.check_for_update(
current_version="0.1.5",
url="https://cm.example.test/version.json",
fetcher=lambda _url, _timeout: {
"release": {"version": "0.1.6"},
"client_policy": {
"policy_version": 1,
"subscription_check_enabled": "false",
"subscription_enforcement_enabled": True,
"updated_at": "2026-07-28T15:19:19+08:00",
},
},
)
self.assertEqual("0.1.6", result.latest_version)
self.assertIsNone(result.client_policy)
self.assertIn("布尔值", result.client_policy_error)
self.assertEqual("", result.error)
def test_release_can_be_null_when_policy_is_available(self):
result = update_check.check_for_update(
current_version="0.1.5",
url="https://cm.example.test/version.json",
fetcher=lambda _url, _timeout: {
"platform": "windows",
"release": None,
"client_policy": {
"policy_version": 1,
"subscription_check_enabled": False,
"subscription_enforcement_enabled": False,
"updated_at": "2026-07-28T15:19:19+08:00",
},
},
)
self.assertTrue(result.checked)
self.assertFalse(result.forced)
self.assertEqual("", result.error)
self.assertEqual("off", result.client_policy.mode)
def test_network_failure_allows_entry(self):
def fetcher(_url, _timeout):
raise socket.timeout("timeout")