test: Tor controller and API endpoint tests
Covers: password/cookie/bare auth, auth failure, connect failure, NEWNYM success/rate-limiting/reconnect, GETINFO multi-line parsing, start/stop lifecycle, GET /tor status, POST /tor/newnym dispatch, and TorConfig YAML parsing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -141,3 +141,37 @@ class TestConfig:
|
||||
c = load_config(cfg_file)
|
||||
assert c.pool_size == 16
|
||||
assert c.pool_max_idle == 45.0
|
||||
|
||||
def test_tor_config_from_yaml(self, tmp_path):
|
||||
cfg_file = tmp_path / "test.yaml"
|
||||
cfg_file.write_text(
|
||||
"tor:\n"
|
||||
" control_host: 10.0.0.1\n"
|
||||
" control_port: 9151\n"
|
||||
" password: secret\n"
|
||||
" cookie_file: /var/run/tor/cookie\n"
|
||||
" newnym_interval: 60\n"
|
||||
)
|
||||
c = load_config(cfg_file)
|
||||
assert c.tor is not None
|
||||
assert c.tor.control_host == "10.0.0.1"
|
||||
assert c.tor.control_port == 9151
|
||||
assert c.tor.password == "secret"
|
||||
assert c.tor.cookie_file == "/var/run/tor/cookie"
|
||||
assert c.tor.newnym_interval == 60.0
|
||||
|
||||
def test_tor_config_defaults(self, tmp_path):
|
||||
cfg_file = tmp_path / "test.yaml"
|
||||
cfg_file.write_text("tor:\n password: test\n")
|
||||
c = load_config(cfg_file)
|
||||
assert c.tor is not None
|
||||
assert c.tor.control_host == "127.0.0.1"
|
||||
assert c.tor.control_port == 9051
|
||||
assert c.tor.cookie_file == ""
|
||||
assert c.tor.newnym_interval == 0.0
|
||||
|
||||
def test_no_tor_config(self, tmp_path):
|
||||
cfg_file = tmp_path / "test.yaml"
|
||||
cfg_file.write_text("listen: 1080\n")
|
||||
c = load_config(cfg_file)
|
||||
assert c.tor is None
|
||||
|
||||
Reference in New Issue
Block a user