mirror of
https://github.com/kubernetes/client-go.git
synced 2025-08-15 14:03:09 +00:00
add test which checks release method calls Get
Kubernetes-commit: f20be4c094cdc037e54d755dcd6292991cee701d
This commit is contained in:
parent
500bfe00cd
commit
b62c1cc29f
@ -677,6 +677,59 @@ func TestReleaseLeaseLeases(t *testing.T) {
|
|||||||
testReleaseLease(t, "leases")
|
testReleaseLease(t, "leases")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestReleaseMethodCallsGet test release method calls Get
|
||||||
|
func TestReleaseMethodCallsGet(t *testing.T) {
|
||||||
|
objectType := "leases"
|
||||||
|
getCalled := false
|
||||||
|
|
||||||
|
lockMeta := metav1.ObjectMeta{Namespace: "foo", Name: "bar"}
|
||||||
|
recorder := record.NewFakeRecorder(100)
|
||||||
|
resourceLockConfig := rl.ResourceLockConfig{
|
||||||
|
Identity: "baz",
|
||||||
|
EventRecorder: recorder,
|
||||||
|
}
|
||||||
|
c := &fake.Clientset{}
|
||||||
|
c.AddReactor("get", objectType, func(action fakeclient.Action) (bool, runtime.Object, error) {
|
||||||
|
// flag to check if Get is called
|
||||||
|
getCalled = true
|
||||||
|
return true, createLockObject(t, objectType, action.GetNamespace(), action.(fakeclient.GetAction).GetName(), &rl.LeaderElectionRecord{
|
||||||
|
HolderIdentity: "baz",
|
||||||
|
LeaseDurationSeconds: 10,
|
||||||
|
}), nil
|
||||||
|
})
|
||||||
|
c.AddReactor("update", objectType, func(action fakeclient.Action) (bool, runtime.Object, error) {
|
||||||
|
return true, action.(fakeclient.UpdateAction).GetObject(), nil
|
||||||
|
})
|
||||||
|
|
||||||
|
lock := &rl.LeaseLock{
|
||||||
|
LeaseMeta: lockMeta,
|
||||||
|
LockConfig: resourceLockConfig,
|
||||||
|
Client: c.CoordinationV1(),
|
||||||
|
}
|
||||||
|
lec := LeaderElectionConfig{
|
||||||
|
Lock: lock,
|
||||||
|
LeaseDuration: 10 * time.Second,
|
||||||
|
Callbacks: LeaderCallbacks{
|
||||||
|
OnNewLeader: func(l string) {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
observedRawRecord := GetRawRecordOrDie(t, objectType, rl.LeaderElectionRecord{HolderIdentity: "baz"})
|
||||||
|
le := &LeaderElector{
|
||||||
|
config: lec,
|
||||||
|
observedRecord: rl.LeaderElectionRecord{HolderIdentity: "baz"},
|
||||||
|
observedRawRecord: observedRawRecord,
|
||||||
|
observedTime: time.Now(),
|
||||||
|
clock: clock.RealClock{},
|
||||||
|
metrics: globalMetricsFactory.newLeaderMetrics(),
|
||||||
|
}
|
||||||
|
|
||||||
|
le.release()
|
||||||
|
|
||||||
|
if !getCalled {
|
||||||
|
t.Errorf("release method does not call Get")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestReleaseOnCancellation_Leases(t *testing.T) {
|
func TestReleaseOnCancellation_Leases(t *testing.T) {
|
||||||
testReleaseOnCancellation(t, "leases")
|
testReleaseOnCancellation(t, "leases")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user