فهرست منبع

add nil / error handling for missing csv tests

AjayTripathy 6 سال پیش
والد
کامیت
6fa670df2d
2فایلهای تغییر یافته به همراه26 افزوده شده و 3 حذف شده
  1. 1 3
      pkg/cloud/csvprovider.go
  2. 25 0
      test/cloud_test.go

+ 1 - 3
pkg/cloud/csvprovider.go

@@ -124,10 +124,8 @@ func (c *CSVProvider) NodePricing(key Key) (*Node, error) {
 		return &Node{
 		return &Node{
 			Cost: p.MarketPriceHourly,
 			Cost: p.MarketPriceHourly,
 		}, nil
 		}, nil
-	} else {
-		klog.Infof("Unable to find Node matching %s", key.ID())
-		return &Node{}, nil
 	}
 	}
+	return nil, fmt.Errorf("Unable to find Node matching %s", key.ID())
 }
 }
 
 
 func NodeValueFromMapField(m string, n *v1.Node) string {
 func NodeValueFromMapField(m string, n *v1.Node) string {

+ 25 - 0
test/cloud_test.go

@@ -68,4 +68,29 @@ func TestNodePriceFromCSV(t * testing.T) {
 		t.Errorf("Wanted price '%s' got price '%s'", wantPrice, gotPrice)
 		t.Errorf("Wanted price '%s' got price '%s'", wantPrice, gotPrice)
 	}
 	}
 
 
+	unknownN := &v1.Node{}
+	unknownN.Spec.ProviderID = providerIDWant
+	unknownN.Name = "unknownname"
+	unknownN.Labels = make(map[string]string)
+	unknownN.Labels["foo"] = labelFooWant
+	k2 := c.GetKey(n.Labels, unknownN)
+	resN2, _ := c.NodePricing(k2)
+	if resN2 != nil {
+		t.Errorf("CSV provider should return nil on missing node")
+	}
+	
+	c2 := &cloud.CSVProvider{
+		CSVLocation: "../configs/fake.csv",
+		CustomProvider: &cloud.CustomProvider{
+			Config:    cloud.NewProviderConfig("../configs/default.json"),
+		},
+	}
+	k3 := c.GetKey(n.Labels, n)
+	resN3, _ := c2.NodePricing(k3)
+	if resN3 != nil {
+		t.Errorf("CSV provider should return nil on missing csv")
+	}
+
+
+
 }
 }