Skip to content

Commit

Permalink
Fix tests for case of missing hiredis
Browse files Browse the repository at this point in the history
  • Loading branch information
V02460 committed Sep 17, 2024
1 parent cafdca9 commit c69367b
Showing 1 changed file with 42 additions and 21 deletions.
63 changes: 42 additions & 21 deletions tests/config/test_load.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,22 @@
#
#
import tempfile
from typing import Callable

import yaml
from parameterized import parameterized

from synapse.config import ConfigError
from synapse.config._base import RootConfig
from synapse.config.homeserver import HomeServerConfig

from tests.config.utils import ConfigFileTestCase

try:
import hiredis
except ImportError:
hiredis = None # type: ignore


class ConfigLoadingFileTestCase(ConfigFileTestCase):
def test_load_fails_if_server_name_missing(self) -> None:
Expand Down Expand Up @@ -119,35 +127,48 @@ def test_depreciated_identity_server_flag_throws_error(self) -> None:
with self.assertRaises(ConfigError):
HomeServerConfig.load_config("", ["-c", self.config_file])

def test_secret_files_missing(self) -> None:
config_strings = [
"redis:\n" " enabled: true\n" " password_path: /does/not/exist",
@parameterized.expand(
[
"turn_shared_secret_path: /does/not/exist",
"registration_shared_secret_path: /does/not/exist",
*["redis:\n enabled: true\n password_path: /does/not/exist"]
* (hiredis is not None),
]
for c in config_strings:
self.generate_config()
self.add_lines_to_config(["", c])
)
def test_secret_files_missing(self, config_str: str) -> None:
self.generate_config()
self.add_lines_to_config(["", config_str])

with self.assertRaises(ConfigError):
HomeServerConfig.load_config("", ["-c", self.config_file])
with self.assertRaises(ConfigError):
HomeServerConfig.load_config("", ["-c", self.config_file])

def test_secret_files_existing(self) -> None:
@parameterized.expand(
[
(
"turn_shared_secret_path: {}",
lambda c: c.voip.turn_shared_secret,
),
(
"registration_shared_secret_path: {}",
lambda c: c.registration.registration_shared_secret,
),
*[
(
"redis:\n enabled: true\n password_path: {}",
lambda c: c.redis.redis_password,
)
]
* (hiredis is not None),
]
)
def test_secret_files_existing(
self, config_line: str, get_secret: Callable[[RootConfig], str]
) -> None:
self.generate_config_and_remove_lines_containing("registration_shared_secret")
with tempfile.NamedTemporaryFile(buffering=0) as secret_file:
secret_file.write(b"53C237")

config_lines = [
"",
"redis:",
" enabled: true",
f" password_path: {secret_file.name}",
f"turn_shared_secret_path: {secret_file.name}",
f"registration_shared_secret_path: {secret_file.name}",
]
self.add_lines_to_config(config_lines)
self.add_lines_to_config(["", config_line.format(secret_file.name)])
config = HomeServerConfig.load_config("", ["-c", self.config_file])

self.assertEqual(config.redis.redis_password, "53C237")
self.assertEqual(config.voip.turn_shared_secret, "53C237")
self.assertEqual(config.registration.registration_shared_secret, "53C237")
self.assertEqual(get_secret(config), "53C237")

0 comments on commit c69367b

Please sign in to comment.