Skip to content

Commit

Permalink
added unit tests and fixed linter
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Rammer <[email protected]>
  • Loading branch information
hamersaw committed Apr 18, 2024
1 parent bab6249 commit a8bbaa9
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
cache "sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/cache"

"github.com/flyteorg/flyte/flytestdlib/contextutils"
"github.com/flyteorg/flyte/flytestdlib/logger"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/cache"
"sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/flyteorg/flyte/flytestdlib/promutils"
Expand All @@ -38,34 +38,29 @@ var pods = []interface{}{
},
}

func TestNewResourceLevelMonitor(t *testing.T) {
x := v1.Pod{}
x.GetObjectMeta()
lm := ResourceLevelMonitor{}
res := lm.countList(context.Background(), pods)
assert.Equal(t, 2, res["ns-a"])
assert.Equal(t, 1, res["ns-b"])
type MyFakeCache struct {
cache.Cache
}

type MyFakeInformer struct {
cache.SharedIndexInformer
store cache.Store
}

func (m MyFakeInformer) GetStore() cache.Store {
return m.store
}
func (m MyFakeCache) List(_ context.Context, list client.ObjectList, _ ...client.ListOption) error {
objectMetadataList, ok := list.(*metav1.PartialObjectMetadataList)
if !ok {
return fmt.Errorf("unexpected type %T", list)
}

func (m MyFakeInformer) HasSynced() bool {
return true
}
objectMetadataList.Items = make([]metav1.PartialObjectMetadata, 0)
for _, pod := range pods {
objectMetadataList.Items = append(objectMetadataList.Items, metav1.PartialObjectMetadata{
TypeMeta: objectMetadataList.TypeMeta,
ObjectMeta: pod.(*v1.Pod).ObjectMeta,
})
}

type MyFakeStore struct {
cache.Store
return nil
}

func (m MyFakeStore) List() []interface{} {
return pods
func (m MyFakeCache) WaitForCacheSync(_ context.Context) bool {
return true
}

func TestResourceLevelMonitor_collect(t *testing.T) {
Expand All @@ -74,12 +69,10 @@ func TestResourceLevelMonitor_collect(t *testing.T) {

kinds, _, err := scheme.Scheme.ObjectKinds(&v1.Pod{})
assert.NoError(t, err)
myInformer := MyFakeInformer{
store: MyFakeStore{},
}
myCache := MyFakeCache{}

index := NewResourceMonitorIndex()
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, myInformer, kinds[0])
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, myCache, kinds[0])
rm.collect(ctx)

var expected = `
Expand All @@ -99,14 +92,11 @@ func TestResourceLevelMonitorSingletonness(t *testing.T) {

kinds, _, err := scheme.Scheme.ObjectKinds(&v1.Pod{})
assert.NoError(t, err)
myInformer := MyFakeInformer{
store: MyFakeStore{},
}
myCache := MyFakeCache{}

index := NewResourceMonitorIndex()
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, myInformer, kinds[0])
fmt.Println(rm)
//rm2 := index.GetOrCreateResourceLevelMonitor(ctx, scope, myInformer, kinds[0])
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, myCache, kinds[0])
rm2 := index.GetOrCreateResourceLevelMonitor(ctx, scope, myCache, kinds[0])

//assert.Equal(t, rm, rm2)
assert.Equal(t, rm, rm2)
}
Original file line number Diff line number Diff line change
Expand Up @@ -991,10 +991,7 @@ func TestResourceManagerConstruction(t *testing.T) {
gvk, err := getPluginGvk(&v1.Pod{})
assert.NoError(t, err)
assert.Equal(t, gvk.Kind, "Pod")
si, err := getPluginSharedInformer(ctx, fakeKubeClient, &v1.Pod{})
assert.NotNil(t, si)
assert.NoError(t, err)
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, si, gvk)
rm := index.GetOrCreateResourceLevelMonitor(ctx, scope, fakeKubeClient.GetCache(), gvk)
assert.NotNil(t, rm)
}

Expand Down

0 comments on commit a8bbaa9

Please sign in to comment.