diff --git a/integration/valkey_search_test_case.py b/integration/valkey_search_test_case.py index f29625378..ca521b0f5 100644 --- a/integration/valkey_search_test_case.py +++ b/integration/valkey_search_test_case.py @@ -239,27 +239,47 @@ def setup_test(self, request): test_name = self.normalize_dir_name(request.node.name) self.test_name = test_name - replica_count = 0 - if hasattr(request, "param") and request.param["replica_count"]: - replica_count = request.param["replica_count"] - - primary = self.start_new_server(is_primary=True) - replicas: List[Node] = [] - for _ in range(0, replica_count): - replicas.append(self.start_new_server(is_primary=False)) + use_external = os.environ.get("VALKEY_EXTERNAL_SERVER", "false").lower() == "true" + + if use_external: + # Use external server to test core functionality for Valkey-Bundle + external_host = os.environ.get("VALKEY_HOST", "localhost") + external_port = int(os.environ.get("VALKEY_PORT", "6379")) + testdir = f"{LOGS_DIR}/{test_name}" + os.makedirs(testdir, exist_ok=True) + self.server, self.client = self.create_server( + testdir=testdir, + bind_ip=external_host, + port=external_port, + external_server=True + ) + self.rg = None + self.nodes = [] + else: + replica_count = 0 + if hasattr(request, "param") and request.param["replica_count"]: + replica_count = request.param["replica_count"] + + primary = self.start_new_server(is_primary=True) + replicas: List[Node] = [] + for _ in range(0, replica_count): + replicas.append(self.start_new_server(is_primary=False)) - self.rg = ReplicationGroup(primary=primary, replicas=replicas) - self.rg.setup_replications_cmd() - self.server = self.rg.primary.server - self.client = self.rg.primary.client + self.rg = ReplicationGroup(primary=primary, replicas=replicas) + self.rg.setup_replications_cmd() + self.server = self.rg.primary.server + self.client = self.rg.primary.client - self.nodes: List[Node] = [self.rg.primary] - self.nodes += self.rg.replicas + self.nodes: List[Node] = [self.rg.primary] + self.nodes += self.rg.replicas yield # Cleanup - ReplicationGroup.cleanup(self.rg) + if use_external: + self.client.flushall() + else: + ReplicationGroup.cleanup(self.rg) def get_config_file_lines(self, testdir, port) -> List[str]: return [