-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Labels
area/kuberneteskind/bugSomething isn't workingSomething isn't workingtriage/wontfixThis will not be worked onThis will not be worked on
Description
Describe the bug
Cannot mock the /version
api. I followed the guide https://quarkus.io/guides/kubernetes-client#testing.
Mocking /version
works on 2.4.2.Final
, but fails on 2.5.4.Final
and 2.6.2.Final
.
The following code should throw an exception when the version path is accessed, but it does not thrown an error for v2.5.4 or higher:
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
import io.fabric8.kubernetes.client.VersionInfo;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.kubernetes.client.KubernetesTestServer;
import io.quarkus.test.kubernetes.client.WithKubernetesTestServer;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.net.HttpURLConnection;
@QuarkusTest
@WithKubernetesTestServer(crud = false)
class K8sTest {
@KubernetesTestServer
KubernetesServer server;
@Test
public void fail() {
server.expect().get().withPath("/version")
.andReturn(HttpURLConnection.HTTP_INTERNAL_ERROR, "error")
.always();
System.out.println("http://" + server.getKubernetesMockServer().getHostName() + ":" + server.getKubernetesMockServer().getPort());
NamespacedKubernetesClient client = server.getClient();
Assertions.assertThrows(KubernetesClientException.class, () -> {
VersionInfo response = client.getKubernetesVersion();
System.out.println(response);
});
}
}
However the following code works as expected with Quarkus 2.4.2 (note there are some api changes).
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
import io.fabric8.kubernetes.client.VersionInfo;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.kubernetes.client.KubernetesTestServer;
import io.quarkus.test.kubernetes.client.WithKubernetesTestServer;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.net.HttpURLConnection;
@QuarkusTest
@WithKubernetesTestServer(crud = false)
class K8sTest {
@KubernetesTestServer
KubernetesServer server;
@Test
public void fail() {
server.expect().get().withPath("/version")
.andReturn(HttpURLConnection.HTTP_INTERNAL_ERROR, "error")
.always();
System.out.println("http://" + server.getMockServer().getHostName() + ":" + server.getMockServer().getPort());
NamespacedKubernetesClient client = server.getClient();
Assertions.assertThrows(KubernetesClientException.class, () -> {
VersionInfo response = client.getVersion();
System.out.println(response);
});
}
}
Expected behavior
Should allow to mock /version api.
Actual behavior
Mock of /version does not have any impact.
How to Reproduce?
See code above.
Output of uname -a
or ver
Darwin 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
Output of java -version
openjdk version "17.0.1" 2021-10-19
GraalVM version (if different from Java)
not relevant
Quarkus version or git rev
2.6.2
Build tool (ie. output of mvnw --version
or gradlew --version
)
No response
Additional information
No response
Metadata
Metadata
Assignees
Labels
area/kuberneteskind/bugSomething isn't workingSomething isn't workingtriage/wontfixThis will not be worked onThis will not be worked on