Skip to content

Commit 21372d4

Browse files
author
Gudjon Ragnar Brynjarsson
committed
Use wait_for_logs
1 parent 928af5a commit 21372d4

File tree

2 files changed

+3
-14
lines changed

2 files changed

+3
-14
lines changed

kafka/setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
url="https://github.com/testcontainers/testcontainers-python",
1313
install_requires=[
1414
"testcontainers-core",
15-
"kafka-python",
1615
],
1716
python_requires=">=3.7",
1817
)

kafka/testcontainers/kafka/__init__.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33
from io import BytesIO
44
from textwrap import dedent
55

6-
from kafka import KafkaConsumer
7-
from kafka.errors import KafkaError, UnrecognizedBrokerVersion, NoBrokersAvailable
8-
96
from testcontainers.core.container import DockerContainer
107
from testcontainers.core.utils import raise_for_deprecated_parameter
11-
from testcontainers.core.waiting_utils import wait_container_is_ready
8+
from testcontainers.core.waiting_utils import wait_for_logs
129

1310

1411
class KafkaContainer(DockerContainer):
@@ -49,13 +46,6 @@ def get_bootstrap_server(self) -> str:
4946
port = self.get_exposed_port(self.port)
5047
return f'{host}:{port}'
5148

52-
@wait_container_is_ready(UnrecognizedBrokerVersion, NoBrokersAvailable, KafkaError, ValueError)
53-
def _connect(self) -> None:
54-
bootstrap_server = self.get_bootstrap_server()
55-
consumer = KafkaConsumer(group_id='test', bootstrap_servers=[bootstrap_server])
56-
if not consumer.bootstrap_connected():
57-
raise KafkaError("Unable to connect with kafka container!")
58-
5949
def tc_start(self) -> None:
6050
host = self.get_container_host_ip()
6151
port = self.get_exposed_port(self.port)
@@ -80,13 +70,13 @@ def tc_start(self) -> None:
8070
)
8171
self.create_file(data, KafkaContainer.TC_START_SCRIPT)
8272

83-
def start(self) -> "KafkaContainer":
73+
def start(self, timeout=30) -> "KafkaContainer":
8474
script = KafkaContainer.TC_START_SCRIPT
8575
command = f'sh -c "while [ ! -f {script} ]; do sleep 0.1; done; sh {script}"'
8676
self.with_command(command)
8777
super().start()
8878
self.tc_start()
89-
self._connect()
79+
wait_for_logs(self, r'.*\[KafkaServer id=\d+\] started.*', timeout=timeout)
9080
return self
9181

9282
def create_file(self, content: bytes, path: str) -> None:

0 commit comments

Comments
 (0)