|
11 | 11 |
|
12 | 12 | import docker |
13 | 13 |
|
| 14 | +ENABLE_FLAGS = ("yes", "true", "t", "y", "1") |
14 | 15 |
|
15 | 16 | class ConnectionMode(Enum): |
16 | 17 | bridge_ip = "bridge_ip" |
@@ -52,7 +53,7 @@ def get_bool_env(name: str) -> bool: |
52 | 53 | Defaults to False. |
53 | 54 | """ |
54 | 55 | value = environ.get(name, "") |
55 | | - return value.lower() in ("yes", "true", "t", "y", "1") |
| 56 | + return value.lower() in ENABLE_FLAGS |
56 | 57 |
|
57 | 58 |
|
58 | 59 | TC_FILE = ".testcontainers.properties" |
@@ -96,11 +97,19 @@ def read_tc_properties() -> dict[str, str]: |
96 | 97 |
|
97 | 98 | @dataclass |
98 | 99 | class TestcontainersConfiguration: |
| 100 | + |
| 101 | + def _render_bool(self, env_name: str, prop_name: str) -> bool: |
| 102 | + env_val = environ.get(env_name, None) |
| 103 | + if env_val is not None: |
| 104 | + return env_val.lower() in ENABLE_FLAGS |
| 105 | + prop_val = self.tc_properties.get(prop_name, None) |
| 106 | + if prop_val is not None: |
| 107 | + return prop_val.lower() in ENABLE_FLAGS |
| 108 | + return False |
| 109 | + |
99 | 110 | max_tries: int = int(environ.get("TC_MAX_TRIES", "120")) |
100 | 111 | sleep_time: float = float(environ.get("TC_POOLING_INTERVAL", "1")) |
101 | 112 | ryuk_image: str = environ.get("RYUK_CONTAINER_IMAGE", "testcontainers/ryuk:0.8.1") |
102 | | - ryuk_privileged: bool = get_bool_env("TESTCONTAINERS_RYUK_PRIVILEGED") |
103 | | - ryuk_disabled: bool = get_bool_env("TESTCONTAINERS_RYUK_DISABLED") |
104 | 113 | _ryuk_docker_socket: str = "" |
105 | 114 | ryuk_reconnection_timeout: str = environ.get("RYUK_RECONNECTION_TIMEOUT", "10s") |
106 | 115 | tc_properties: dict[str, str] = field(default_factory=read_tc_properties) |
@@ -129,6 +138,14 @@ def docker_auth_config(self, value: str) -> None: |
129 | 138 | def tc_properties_get_tc_host(self) -> Union[str, None]: |
130 | 139 | return self.tc_properties.get("tc.host") |
131 | 140 |
|
| 141 | + @property |
| 142 | + def ryuk_privileged(self) -> bool: |
| 143 | + return self._render_bool("TESTCONTAINERS_RYUK_PRIVILEGED", "ryuk.container.privileged") |
| 144 | + |
| 145 | + @property |
| 146 | + def ryuk_disabled(self) -> bool: |
| 147 | + return self._render_bool("TESTCONTAINERS_RYUK_DISABLED", "ryuk.disabled") |
| 148 | + |
132 | 149 | @property |
133 | 150 | def timeout(self) -> float: |
134 | 151 | return self.max_tries * self.sleep_time |
|
0 commit comments