115 lines
4.9 KiB
Python
Executable File
115 lines
4.9 KiB
Python
Executable File
"""This verifies zeekclient's ability to load configurations and update
|
|
individual settings via command-line arguments, environment variables, and
|
|
files.
|
|
"""
|
|
|
|
import os
|
|
import tempfile
|
|
import unittest
|
|
|
|
import zeekclient
|
|
|
|
|
|
class TestConfig(unittest.TestCase):
|
|
def setUp(self):
|
|
self.config = zeekclient.config.Config()
|
|
|
|
def test_basics(self):
|
|
# One of each type:
|
|
self.assertEqual(self.config.getint("client", "request_timeout_secs"), 20)
|
|
self.assertEqual(
|
|
self.config.getfloat("client", "peering_retry_delay_secs"),
|
|
1.0,
|
|
)
|
|
self.assertEqual(self.config.getboolean("client", "rich_logging_format"), False)
|
|
|
|
def test_update_from_file(self):
|
|
with tempfile.NamedTemporaryFile("w", delete=False) as hdl:
|
|
hdl.write("[client]\nrequest_timeout_secs = 10\n")
|
|
hdl.close()
|
|
self.config.update_from_file(hdl.name)
|
|
self.assertEqual(self.config.getint("client", "request_timeout_secs"), 10)
|
|
|
|
@unittest.mock.patch.dict(
|
|
os.environ,
|
|
{
|
|
"ZEEK_CLIENT_CONFIG_SETTINGS": 'client.request_timeout_secs=23 server.FOO="1 2 3"',
|
|
},
|
|
)
|
|
def test_update_from_env(self):
|
|
self.config.update_from_env()
|
|
self.assertEqual(self.config.getint("client", "request_timeout_secs"), 23)
|
|
self.assertEqual(self.config.get("server", "FOO"), "1 2 3")
|
|
|
|
def test_update_from_args(self):
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(
|
|
["--set", "client.request_timeout_secs=42", "--set", "server.FOO=1 2 3"],
|
|
)
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.getint("client", "request_timeout_secs"), 42)
|
|
self.assertEqual(self.config.get("server", "FOO"), "1 2 3")
|
|
|
|
def test_update_from_args_controller_host(self):
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "foo"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "foo")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "foo:"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "foo")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "127.0.0.1"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "127.0.0.1")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "127.0.0.1:"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "127.0.0.1")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "[fe80::1]"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "[fe80::1]")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "[fe80::1]:"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "[fe80::1]")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2149)
|
|
|
|
def test_update_from_args_controller_port(self):
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", ":2222"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "127.0.0.1")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2222)
|
|
|
|
def test_update_from_args_controller_hostport(self):
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "foo:2222"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "foo")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2222)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "127.0.0.1:2222"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "127.0.0.1")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2222)
|
|
|
|
parser = zeekclient.cli.create_parser()
|
|
args = parser.parse_args(["--controller", "[fe80::1]:2222"])
|
|
self.config.update_from_args(args)
|
|
self.assertEqual(self.config.get("controller", "host"), "[fe80::1]")
|
|
self.assertEqual(self.config.getint("controller", "port"), 2222)
|