mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
use table driven tests to reduce nesting in etcdstorage test
This commit is contained in:
parent
1a4a2ab430
commit
29f68813d3
@ -476,48 +476,45 @@ func TestEtcdStoragePath(t *testing.T) {
|
|||||||
resourcesToPersist = append(resourcesToPersist, getResourcesToPersist(serverResources, false, t)...)
|
resourcesToPersist = append(resourcesToPersist, getResourcesToPersist(serverResources, false, t)...)
|
||||||
|
|
||||||
for _, resourceToPersist := range resourcesToPersist {
|
for _, resourceToPersist := range resourcesToPersist {
|
||||||
gvk := resourceToPersist.gvk
|
t.Run(resourceToPersist.gvr.String(), func(t *testing.T) {
|
||||||
gvResource := resourceToPersist.gvr
|
gvk := resourceToPersist.gvk
|
||||||
kind := gvk.Kind
|
gvResource := resourceToPersist.gvr
|
||||||
|
kind := gvk.Kind
|
||||||
|
|
||||||
mapping := &meta.RESTMapping{
|
mapping := &meta.RESTMapping{
|
||||||
Resource: resourceToPersist.gvr,
|
Resource: resourceToPersist.gvr,
|
||||||
GroupVersionKind: resourceToPersist.gvk,
|
GroupVersionKind: resourceToPersist.gvk,
|
||||||
Scope: meta.RESTScopeRoot,
|
Scope: meta.RESTScopeRoot,
|
||||||
}
|
}
|
||||||
if resourceToPersist.namespaced {
|
if resourceToPersist.namespaced {
|
||||||
mapping.Scope = meta.RESTScopeNamespace
|
mapping.Scope = meta.RESTScopeNamespace
|
||||||
}
|
}
|
||||||
|
|
||||||
if kindWhiteList.Has(kind) {
|
if kindWhiteList.Has(kind) {
|
||||||
kindSeen.Insert(kind)
|
kindSeen.Insert(kind)
|
||||||
continue
|
t.Skip("whitelisted")
|
||||||
}
|
}
|
||||||
|
|
||||||
etcdSeen[gvResource] = empty{}
|
etcdSeen[gvResource] = empty{}
|
||||||
testData, hasTest := etcdStorageData[gvResource]
|
testData, hasTest := etcdStorageData[gvResource]
|
||||||
|
|
||||||
if !hasTest {
|
if !hasTest {
|
||||||
t.Errorf("no test data for %s. Please add a test for your new type to etcdStorageData.", gvResource)
|
t.Fatalf("no test data for %s. Please add a test for your new type to etcdStorageData.", gvResource)
|
||||||
continue
|
}
|
||||||
}
|
|
||||||
|
if len(testData.expectedEtcdPath) == 0 {
|
||||||
if len(testData.expectedEtcdPath) == 0 {
|
t.Fatalf("empty test data for %s", gvResource)
|
||||||
t.Errorf("empty test data for %s", gvResource)
|
}
|
||||||
continue
|
|
||||||
}
|
shouldCreate := len(testData.stub) != 0 // try to create only if we have a stub
|
||||||
|
|
||||||
shouldCreate := len(testData.stub) != 0 // try to create only if we have a stub
|
var input *metaObject
|
||||||
|
if shouldCreate {
|
||||||
var input *metaObject
|
if input, err = jsonToMetaObject([]byte(testData.stub)); err != nil || input.isEmpty() {
|
||||||
if shouldCreate {
|
t.Fatalf("invalid test data for %s: %v", gvResource, err)
|
||||||
if input, err = jsonToMetaObject([]byte(testData.stub)); err != nil || input.isEmpty() {
|
}
|
||||||
t.Errorf("invalid test data for %s: %v", gvResource, err)
|
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func() { // forces defer to run per iteration of the for loop
|
|
||||||
all := &[]cleanupData{}
|
all := &[]cleanupData{}
|
||||||
defer func() {
|
defer func() {
|
||||||
if !t.Failed() { // do not cleanup if test has already failed since we may need things in the etcd dump
|
if !t.Failed() { // do not cleanup if test has already failed since we may need things in the etcd dump
|
||||||
@ -528,21 +525,18 @@ func TestEtcdStoragePath(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
if err := client.createPrerequisites(mapper, testNamespace, testData.prerequisites, all); err != nil {
|
if err := client.createPrerequisites(mapper, testNamespace, testData.prerequisites, all); err != nil {
|
||||||
t.Errorf("failed to create prerequisites for %s: %#v", gvResource, err)
|
t.Fatalf("failed to create prerequisites for %s: %#v", gvResource, err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if shouldCreate { // do not try to create items with no stub
|
if shouldCreate { // do not try to create items with no stub
|
||||||
if err := client.create(testData.stub, testNamespace, mapping, all); err != nil {
|
if err := client.create(testData.stub, testNamespace, mapping, all); err != nil {
|
||||||
t.Errorf("failed to create stub for %s: %#v", gvResource, err)
|
t.Fatalf("failed to create stub for %s: %#v", gvResource, err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
output, err := getFromEtcd(kvClient, testData.expectedEtcdPath)
|
output, err := getFromEtcd(kvClient, testData.expectedEtcdPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("failed to get from etcd for %s: %#v", gvResource, err)
|
t.Fatalf("failed to get from etcd for %s: %#v", gvResource, err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
expectedGVK := gvk
|
expectedGVK := gvk
|
||||||
@ -564,7 +558,7 @@ func TestEtcdStoragePath(t *testing.T) {
|
|||||||
|
|
||||||
addGVKToEtcdBucket(cohabitatingResources, actualGVK, getEtcdBucket(testData.expectedEtcdPath))
|
addGVKToEtcdBucket(cohabitatingResources, actualGVK, getEtcdBucket(testData.expectedEtcdPath))
|
||||||
pathSeen[testData.expectedEtcdPath] = append(pathSeen[testData.expectedEtcdPath], mapping.Resource)
|
pathSeen[testData.expectedEtcdPath] = append(pathSeen[testData.expectedEtcdPath], mapping.Resource)
|
||||||
}()
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if inEtcdData, inEtcdSeen := diffMaps(etcdStorageData, etcdSeen); len(inEtcdData) != 0 || len(inEtcdSeen) != 0 {
|
if inEtcdData, inEtcdSeen := diffMaps(etcdStorageData, etcdSeen); len(inEtcdData) != 0 || len(inEtcdSeen) != 0 {
|
||||||
|
Loading…
Reference in New Issue
Block a user