release: prepare 0.2.0 for sing-box 1.14
This commit is contained in:
+25
-1
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import hashlib
|
||||
import stat
|
||||
import subprocess
|
||||
import tempfile
|
||||
@@ -11,7 +12,9 @@ from types import SimpleNamespace
|
||||
from unittest import mock
|
||||
|
||||
from vpn_egressctl.doctor import Doctor
|
||||
from vpn_egressctl.renderer_1_13_19 import render_bytes
|
||||
from vpn_egressctl.fsutil import atomic_write_json
|
||||
from vpn_egressctl.metadata import build_config_metadata
|
||||
from vpn_egressctl.renderer_1_14_0 import render_bytes
|
||||
from vpn_egressctl.uri import parse_hysteria2_uri
|
||||
|
||||
from tests.helpers import FakeRunner, make_policy
|
||||
@@ -90,6 +93,27 @@ class DoctorTests(unittest.TestCase):
|
||||
self.assertEqual(doctor.checks[-1].level, "ERROR")
|
||||
self.assertIn("regular file", doctor.checks[-1].message)
|
||||
|
||||
def test_invalid_last_good_metadata_is_reported(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
policy = self.prepare(directory, "hy2://auth@example.com")
|
||||
state_dir = Path(policy.runtime.state_dir)
|
||||
state_dir.mkdir(parents=True)
|
||||
last_good = state_dir / "last-good.json"
|
||||
last_good.write_bytes(b"{}\n")
|
||||
atomic_write_json(
|
||||
state_dir / "last-good.meta.json",
|
||||
build_config_metadata(hashlib.sha256(b"different").hexdigest(), "1.14.0"),
|
||||
)
|
||||
doctor = Doctor(
|
||||
policy,
|
||||
runner=FakeRunner(),
|
||||
resolver=lambda *args: [(None, None, None, None, ("8.8.4.4", 443))],
|
||||
)
|
||||
checks = doctor.run()
|
||||
selected = [check for check in checks if check.name == "last-good-metadata"]
|
||||
self.assertEqual(selected[0].level, "ERROR")
|
||||
self.assertIn("checksum", selected[0].message)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user