Skip to content

Commit 821bf52

Browse files
committed
test(kubevirt): moved tests to MCP layer
Signed-off-by: Marc Nuri <[email protected]>
1 parent ff621bd commit 821bf52

File tree

7 files changed

+627
-893
lines changed

7 files changed

+627
-893
lines changed

pkg/kubernetes/testing/helpers.go

Lines changed: 0 additions & 238 deletions
This file was deleted.

pkg/kubevirt/resources_test.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"context"
55
"testing"
66

7-
k8stesting "github.com/containers/kubernetes-mcp-server/pkg/kubernetes/testing"
87
kubevirttesting "github.com/containers/kubernetes-mcp-server/pkg/kubevirt/testing"
98
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
109
"k8s.io/apimachinery/pkg/runtime"
1110
"k8s.io/apimachinery/pkg/runtime/schema"
11+
"k8s.io/client-go/dynamic/fake"
1212
)
1313

1414
func TestMatchDataSource(t *testing.T) {
@@ -327,12 +327,12 @@ func TestExtractDataSourceInfo(t *testing.T) {
327327

328328
func TestResolvePreference(t *testing.T) {
329329
tests := []struct {
330-
name string
331-
preferences []PreferenceInfo
332-
explicitPreference string
333-
workload string
334-
matchedDataSource *DataSourceInfo
335-
expected string
330+
name string
331+
preferences []PreferenceInfo
332+
explicitPreference string
333+
workload string
334+
matchedDataSource *DataSourceInfo
335+
expected string
336336
}{
337337
{
338338
name: "explicit preference takes priority",
@@ -422,7 +422,7 @@ func TestResolveInstancetype(t *testing.T) {
422422
expected: "c1.large",
423423
},
424424
{
425-
name: "returns empty when no match",
425+
name: "returns empty when no match",
426426
expected: "",
427427
},
428428
}
@@ -473,9 +473,9 @@ func TestSearchDataSources(t *testing.T) {
473473
gvrToListKind := map[schema.GroupVersionResource]string{
474474
{Group: "cdi.kubevirt.io", Version: "v1beta1", Resource: "datasources"}: "DataSourceList",
475475
}
476-
k8s := k8stesting.NewFakeKubernetesClient(runtime.NewScheme(), gvrToListKind, tt.objects...)
476+
fakeDynamicClient := fake.NewSimpleDynamicClientWithCustomListKinds(runtime.NewScheme(), gvrToListKind, tt.objects...)
477477

478-
result := SearchDataSources(context.Background(), k8s.AccessControlClientset().DynamicClient())
478+
result := SearchDataSources(context.Background(), fakeDynamicClient)
479479
if len(result) != tt.wantCount {
480480
t.Errorf("SearchDataSources() returned %d results, want %d", len(result), tt.wantCount)
481481
}
@@ -488,10 +488,10 @@ func TestSearchDataSources(t *testing.T) {
488488

489489
func TestSearchPreferences(t *testing.T) {
490490
tests := []struct {
491-
name string
492-
objects []runtime.Object
493-
namespace string
494-
wantNames []string
491+
name string
492+
objects []runtime.Object
493+
namespace string
494+
wantNames []string
495495
}{
496496
{
497497
name: "finds cluster and namespaced preferences",
@@ -516,9 +516,9 @@ func TestSearchPreferences(t *testing.T) {
516516
{Group: "instancetype.kubevirt.io", Version: "v1beta1", Resource: "virtualmachineclusterpreferences"}: "VirtualMachineClusterPreferenceList",
517517
{Group: "instancetype.kubevirt.io", Version: "v1beta1", Resource: "virtualmachinepreferences"}: "VirtualMachinePreferenceList",
518518
}
519-
k8s := k8stesting.NewFakeKubernetesClient(runtime.NewScheme(), gvrToListKind, tt.objects...)
519+
fakeDynamicClient := fake.NewSimpleDynamicClientWithCustomListKinds(runtime.NewScheme(), gvrToListKind, tt.objects...)
520520

521-
result := SearchPreferences(context.Background(), k8s.AccessControlClientset().DynamicClient(), tt.namespace)
521+
result := SearchPreferences(context.Background(), fakeDynamicClient, tt.namespace)
522522
if len(result) != len(tt.wantNames) {
523523
t.Errorf("SearchPreferences() returned %d results, want %d", len(result), len(tt.wantNames))
524524
}
@@ -538,10 +538,10 @@ func TestSearchPreferences(t *testing.T) {
538538

539539
func TestSearchInstancetypes(t *testing.T) {
540540
tests := []struct {
541-
name string
542-
objects []runtime.Object
543-
namespace string
544-
wantNames []string
541+
name string
542+
objects []runtime.Object
543+
namespace string
544+
wantNames []string
545545
}{
546546
{
547547
name: "finds cluster and namespaced instancetypes",
@@ -566,9 +566,9 @@ func TestSearchInstancetypes(t *testing.T) {
566566
{Group: "instancetype.kubevirt.io", Version: "v1beta1", Resource: "virtualmachineclusterinstancetypes"}: "VirtualMachineClusterInstancetypeList",
567567
{Group: "instancetype.kubevirt.io", Version: "v1beta1", Resource: "virtualmachineinstancetypes"}: "VirtualMachineInstancetypeList",
568568
}
569-
k8s := k8stesting.NewFakeKubernetesClient(runtime.NewScheme(), gvrToListKind, tt.objects...)
569+
fakeDynamicClient := fake.NewSimpleDynamicClientWithCustomListKinds(runtime.NewScheme(), gvrToListKind, tt.objects...)
570570

571-
result := SearchInstancetypes(context.Background(), k8s.AccessControlClientset().DynamicClient(), tt.namespace)
571+
result := SearchInstancetypes(context.Background(), fakeDynamicClient, tt.namespace)
572572
if len(result) != len(tt.wantNames) {
573573
t.Errorf("SearchInstancetypes() returned %d results, want %d", len(result), len(tt.wantNames))
574574
}

pkg/mcp/common_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,16 @@ func TestMain(m *testing.M) {
6767
envTest = &envtest.Environment{
6868
BinaryAssetsDirectory: filepath.Join(envTestDir, "k8s", versionDir),
6969
CRDs: []*apiextensionsv1spec.CustomResourceDefinition{
70+
// OpenShift
7071
CRD("project.openshift.io", "v1", "projects", "Project", "project", false),
7172
CRD("route.openshift.io", "v1", "routes", "Route", "route", true),
73+
// Kubevirt
74+
CRD("kubevirt.io", "v1", "virtualmachines", "VirtualMachine", "virtualmachine", true),
75+
CRD("cdi.kubevirt.io", "v1beta1", "datasources", "DataSource", "datasource", true),
76+
CRD("instancetype.kubevirt.io", "v1beta1", "virtualmachineclusterinstancetypes", "VirtualMachineClusterInstancetype", "virtualmachineclusterinstancetype", false),
77+
CRD("instancetype.kubevirt.io", "v1beta1", "virtualmachineinstancetypes", "VirtualMachineInstancetype", "virtualmachineinstancetype", true),
78+
CRD("instancetype.kubevirt.io", "v1beta1", "virtualmachineclusterpreferences", "VirtualMachineClusterPreference", "virtualmachineclusterpreference", false),
79+
CRD("instancetype.kubevirt.io", "v1beta1", "virtualmachinepreferences", "VirtualMachinePreference", "virtualmachinepreference", true),
7280
},
7381
}
7482
// Configure API server for faster CRD establishment and test performance

0 commit comments

Comments
 (0)