refactor: inject DoH runtime settings

This commit is contained in:
jxxghp
2026-08-23 01:35:12 +08:00
parent 09cfd71649
commit e63745f40b
5 changed files with 29 additions and 18 deletions
@@ -9,14 +9,13 @@
"root": "app"
},
"settings_imports": {
"count": 119,
"count": 118,
"files": [
"app/adapters/cache/backends.py",
"app/adapters/cache/redis.py",
"app/adapters/external/market.py",
"app/adapters/external/server.py",
"app/adapters/network/browser.py",
"app/adapters/network/doh.py",
"app/adapters/system/fsproxy.py",
"app/adapters/system/plugin/dependency.py",
"app/adapters/system/plugin/package.py",
+4 -3
View File
@@ -13,8 +13,8 @@
"runtime_to_db": [],
"workflow_to_db": []
},
"edge_count": 6418,
"edge_sha256": "5849976e41ca96688d718358b3c1218d66d986efa0196051531be2a17aae1466",
"edge_count": 6419,
"edge_sha256": "7e3db5ef8bc9be8d21706ad7a5f4b256430ea876afef66ca9ecf33ea2ff3c64e",
"edges": [
"app -> app.runtime",
"app -> app.runtime.compat",
@@ -101,10 +101,11 @@
"app.adapters.network.browser -> app.runtime.managed_resources",
"app.adapters.network.cloudflare -> app.runtime",
"app.adapters.network.cloudflare -> app.runtime.log",
"app.adapters.network.doh -> app.application",
"app.adapters.network.doh -> app.application.configuration",
"app.adapters.network.doh -> app.foundation",
"app.adapters.network.doh -> app.foundation.singleton",
"app.adapters.network.doh -> app.runtime",
"app.adapters.network.doh -> app.runtime.config",
"app.adapters.network.doh -> app.runtime.log",
"app.adapters.network.doh -> app.runtime.reload",
"app.adapters.network.http -> app.runtime",
+7 -7
View File
@@ -7,8 +7,8 @@ def test_doh_executor_is_lazy_and_shutdown_restores_socket(monkeypatch):
"""DoH 线程池按需创建,并在模块关闭时恢复系统 DNS"""
original_getaddrinfo = socket.getaddrinfo
helper = object.__new__(doh.DohHelper)
monkeypatch.setattr(doh.settings, "DOH_DOMAINS", "example.com")
monkeypatch.setattr(doh.settings, "DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr("app.runtime.config.settings.DOH_DOMAINS", "example.com")
monkeypatch.setattr("app.runtime.config.settings.DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr(doh, "_doh_query", lambda resolver, host: "203.0.113.7")
monkeypatch.setattr(doh, "_orig_getaddrinfo", lambda host, *args, **kwargs: [])
@@ -35,8 +35,8 @@ def test_doh_config_reload_disables_and_closes_executor(monkeypatch):
"""热更新关闭 DoH 时恢复系统 DNS 并释放已创建的线程池"""
original_getaddrinfo = socket.getaddrinfo
helper = object.__new__(doh.DohHelper)
monkeypatch.setattr(doh.settings, "DOH_DOMAINS", "example.com")
monkeypatch.setattr(doh.settings, "DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr("app.runtime.config.settings.DOH_DOMAINS", "example.com")
monkeypatch.setattr("app.runtime.config.settings.DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr(doh, "_doh_query", lambda resolver, host: "203.0.113.7")
monkeypatch.setattr(doh, "_orig_getaddrinfo", lambda host, *args, **kwargs: [])
@@ -46,7 +46,7 @@ def test_doh_config_reload_disables_and_closes_executor(monkeypatch):
socket.getaddrinfo("example.com", None)
executor = doh._executor
assert executor is not None
monkeypatch.setattr(doh.settings, "DOH_ENABLE", False)
monkeypatch.setattr("app.runtime.config.settings.DOH_ENABLE", False)
helper.on_config_changed()
@@ -73,8 +73,8 @@ def test_enable_doh_reuses_cached_host_resolution(monkeypatch):
resolved_hosts.append(host)
return [(socket.AF_INET, socket.SOCK_STREAM, 0, "", (host, 0))]
monkeypatch.setattr(doh.settings, "DOH_DOMAINS", "example.com")
monkeypatch.setattr(doh.settings, "DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr("app.runtime.config.settings.DOH_DOMAINS", "example.com")
monkeypatch.setattr("app.runtime.config.settings.DOH_RESOLVERS", "resolver.test")
monkeypatch.setattr(doh, "_doh_query", fake_query)
monkeypatch.setattr(doh, "_orig_getaddrinfo", fake_getaddrinfo)