Converted TestPodUpdate to native ginkgo syntax #3941

This commit is contained in:
Robert Rati 2015-01-30 15:59:13 -05:00
parent 44510e11ac
commit e47b98db29

View File

@ -17,6 +17,7 @@ limitations under the License.
package e2e
import (
"fmt"
"strconv"
"time"
@ -24,15 +25,24 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/golang/glog"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
func TestPodUpdate(c *client.Client) bool {
var _ = Describe("Pods", func() {
var (
c *client.Client
)
BeforeEach(func() {
c = loadClientOrDie()
})
It("should be updated", func() {
podClient := c.Pods(api.NamespaceDefault)
By("creating the pod")
name := "pod-update-" + string(util.NewUUID())
value := strconv.Itoa(time.Now().Nanosecond())
pod := &api.Pod{
@ -62,47 +72,47 @@ func TestPodUpdate(c *client.Client) bool {
},
},
}
By("submitting the pod to kubernetes")
_, err := podClient.Create(pod)
if err != nil {
glog.Errorf("Failed to create pod: %v", err)
return false
}
defer podClient.Delete(pod.Name)
waitForPodRunning(c, pod.Name)
pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
if len(pods.Items) != 1 {
glog.Errorf("Failed to find the correct pod")
return false
Fail(fmt.Sprintf("Failed to create pod: %v", err))
}
defer func() {
By("deleting the pod")
defer GinkgoRecover()
podClient.Delete(pod.Name)
}()
By("waiting for the pod to start running")
waitForPodRunning(c, pod.Name)
By("verifying the pod is in kubernetes")
pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
Expect(len(pods.Items)).To(Equal(1))
By("retrieving the pod")
podOut, err := podClient.Get(pod.Name)
if err != nil {
glog.Errorf("Failed to get pod: %v", err)
return false
Fail(fmt.Sprintf("Failed to get pod: %v", err))
}
By("updating the pod")
value = "time" + value
pod.Labels["time"] = value
pod.ResourceVersion = podOut.ResourceVersion
pod.UID = podOut.UID
pod, err = podClient.Update(pod)
if err != nil {
glog.Errorf("Failed to update pod: %v", err)
return false
Fail(fmt.Sprintf("Failed to update pod: %v", err))
}
waitForPodRunning(c, pod.Name)
pods, err = podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
if len(pods.Items) != 1 {
glog.Errorf("Failed to find the correct pod after update.")
return false
}
glog.Infof("pod update OK")
return true
}
var _ = Describe("TestPodUpdate", func() {
It("should pass", func() {
// TODO: Instead of OrDie, client should Fail the test if there's a problem.
// In general tests should Fail() instead of glog.Fatalf().
Expect(TestPodUpdate(loadClientOrDie())).To(BeTrue())
By("waiting for the updated pod to start running")
waitForPodRunning(c, pod.Name)
By("verifying the updated pod is in kubernetes")
pods, err = podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
Expect(len(pods.Items)).To(Equal(1))
fmt.Println("pod update OK")
})
})