66import grpc
77from grpc_health .v1 import health_pb2 , health_pb2_grpc
88from testcontainers .core .container import DockerContainer
9- from testcontainers .core .waiting_utils import wait_container_is_ready , wait_for_logs
9+ from testcontainers .core .wait_strategies import LogMessageWaitStrategy
1010
1111from openfeature .contrib .provider .flagd .config import ResolverType
1212
@@ -32,6 +32,7 @@ def __init__(
3232 self .flagDir .mkdir (parents = True , exist_ok = True )
3333 self .with_exposed_ports (self .rpc , self .ipr , HEALTH_CHECK , LAUNCHPAD )
3434 self .with_volume_mapping (os .path .abspath (self .flagDir .name ), "/flags" , "rw" )
35+ self .waiting_for (LogMessageWaitStrategy ("listening" ).with_startup_timeout (5 ))
3536
3637 def get_port (self , resolver_type : ResolverType ):
3738 if resolver_type == ResolverType .RPC :
@@ -47,15 +48,8 @@ def start(self) -> "FlagdContainer":
4748 self ._checker (self .get_container_host_ip (), self .get_exposed_port (HEALTH_CHECK ))
4849 return self
4950
50- @wait_container_is_ready (ConnectionError )
5151 def _checker (self , host : str , port : int ) -> None :
52- # First we wait for Flagd to say it's listening
53- wait_for_logs (
54- self ,
55- "listening" ,
56- 5 ,
57- )
58-
52+ # Give an extra second before continuing
5953 time .sleep (1 )
6054 # Second we use the GRPC health check endpoint
6155 with grpc .insecure_channel (host + ":" + str (port )) as channel :
0 commit comments