You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ra...@apache.org on 2018/11/02 15:06:13 UTC

[trafficcontrol] 04/09: more test fixes for IDs

This is an automated email from the ASF dual-hosted git repository.

rawlin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit d083557e1a59cd4620b7652fd2821bf5d18d1ad3
Author: Dan Kirkwood <da...@apache.org>
AuthorDate: Mon Oct 29 17:28:19 2018 -0600

    more test fixes for IDs
---
 traffic_ops/client/origin.go                       | 45 +++++++++++++------
 traffic_ops/client/staticdnsentry.go               | 52 +++++++++++++++++++---
 traffic_ops/testing/api/v14/cdnfederations_test.go |  2 +
 traffic_ops/testing/api/v14/crconfig_test.go       |  2 +
 .../api/v14/deliveryservice_requests_test.go       | 10 +++++
 .../testing/api/v14/deliveryservicematches_test.go |  2 +
 .../testing/api/v14/deliveryservices_test.go       |  2 +
 .../testing/api/v14/deliveryserviceservers_test.go |  2 +
 .../api/v14/deliveryservicesideligible_test.go     |  2 +
 traffic_ops/testing/api/v14/federations_test.go    |  3 ++
 traffic_ops/testing/api/v14/origins_test.go        |  3 +-
 .../testing/api/v14/staticdnsentries_test.go       |  2 +
 .../testing/api/v14/steeringtargets_test.go        |  3 ++
 traffic_ops/testing/api/v14/tc-fixtures.json       |  4 ++
 .../testing/api/v14/userdeliveryservices_test.go   |  2 +
 15 files changed, 115 insertions(+), 21 deletions(-)

diff --git a/traffic_ops/client/origin.go b/traffic_ops/client/origin.go
index 3373183..12ef056 100644
--- a/traffic_ops/client/origin.go
+++ b/traffic_ops/client/origin.go
@@ -29,15 +29,14 @@ const (
 	API_v13_Origins = "/api/1.3/origins"
 )
 
-// Create an Origin
-func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, ReqInf, error) {
+func originIDs(to *Session, origin *tc.Origin) error {
 	if origin.CachegroupID == nil && origin.Cachegroup != nil {
 		p, _, err := to.GetCacheGroupByName(*origin.Cachegroup)
 		if err != nil {
-			return nil, ReqInf{}, err
+			return err
 		}
 		if len(p) == 0 {
-			return nil, ReqInf{}, errors.New("no cachegroup named " + *origin.Cachegroup)
+			return errors.New("no cachegroup named " + *origin.Cachegroup)
 		}
 		origin.CachegroupID = &p[0].ID
 	}
@@ -45,10 +44,10 @@ func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, Req
 	if origin.DeliveryServiceID == nil && origin.DeliveryService != nil {
 		dses, _, err := to.GetDeliveryServiceByXMLID(*origin.DeliveryService)
 		if err != nil {
-			return nil, ReqInf{}, err
+			return err
 		}
 		if len(dses) == 0 {
-			return nil, ReqInf{}, errors.New("no deliveryservice with name " + *origin.DeliveryService)
+			return errors.New("no deliveryservice with name " + *origin.DeliveryService)
 		}
 		origin.DeliveryServiceID = &dses[0].ID
 	}
@@ -56,10 +55,10 @@ func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, Req
 	if origin.ProfileID == nil && origin.Profile != nil {
 		profiles, _, err := to.GetProfileByName(*origin.Profile)
 		if err != nil {
-			return nil, ReqInf{}, err
+			return err
 		}
 		if len(profiles) == 0 {
-			return nil, ReqInf{}, errors.New("no profile with name " + *origin.Profile)
+			return errors.New("no profile with name " + *origin.Profile)
 		}
 		origin.ProfileID = &profiles[0].ID
 	}
@@ -67,10 +66,10 @@ func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, Req
 	if origin.CoordinateID == nil && origin.Coordinate != nil {
 		coordinates, _, err := to.GetCoordinateByName(*origin.Coordinate)
 		if err != nil {
-			return nil, ReqInf{}, err
+			return err
 		}
 		if len(coordinates) == 0 {
-			return nil, ReqInf{}, errors.New("no coordinate with name " + *origin.Coordinate)
+			return errors.New("no coordinate with name " + *origin.Coordinate)
 		}
 		origin.CoordinateID = &coordinates[0].ID
 	}
@@ -78,14 +77,27 @@ func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, Req
 	if origin.TenantID == nil && origin.Tenant != nil {
 		tenant, _, err := to.TenantByName(*origin.Tenant)
 		if err != nil {
-			return nil, ReqInf{}, err
+			return err
 		}
 		origin.TenantID = &tenant.ID
 	}
 
+	return nil
+}
+
+// Create an Origin
+func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, ReqInf, error) {
 	var remoteAddr net.Addr
-	reqBody, err := json.Marshal(origin)
 	reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: remoteAddr}
+
+	fmt.Printf("Origin before: %+v\n", origin)
+	err := originIDs(to, &origin)
+	if err != nil {
+		return nil, reqInf, err
+	}
+	fmt.Printf("Origin after: %+v\n", origin)
+
+	reqBody, err := json.Marshal(origin)
 	if err != nil {
 		return nil, reqInf, err
 	}
@@ -103,10 +115,15 @@ func (to *Session) CreateOrigin(origin tc.Origin) (*tc.OriginDetailResponse, Req
 
 // Update an Origin by ID
 func (to *Session) UpdateOriginByID(id int, origin tc.Origin) (*tc.OriginDetailResponse, ReqInf, error) {
-
 	var remoteAddr net.Addr
-	reqBody, err := json.Marshal(origin)
 	reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: remoteAddr}
+
+	err := originIDs(to, &origin)
+	if err != nil {
+		return nil, reqInf, err
+	}
+
+	reqBody, err := json.Marshal(origin)
 	if err != nil {
 		return nil, reqInf, err
 	}
diff --git a/traffic_ops/client/staticdnsentry.go b/traffic_ops/client/staticdnsentry.go
index 0479160..3d6e273 100644
--- a/traffic_ops/client/staticdnsentry.go
+++ b/traffic_ops/client/staticdnsentry.go
@@ -17,6 +17,7 @@ package client
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"net"
 	"net/http"
@@ -28,11 +29,49 @@ const (
 	API_v13_StaticDNSEntries = "/api/1.3/staticdnsentries"
 )
 
-// Create a StaticDNSEntry
-func (to *Session) CreateStaticDNSEntry(cdn tc.StaticDNSEntry) (tc.Alerts, ReqInf, error) {
+func staticDNSEntryIDs(to *Session, sdns *tc.StaticDNSEntry) error {
+	if sdns.CacheGroupID == 0 && sdns.CacheGroupName != "" {
+		p, _, err := to.GetCacheGroupByName(sdns.CacheGroupName)
+		if err != nil {
+			return err
+		}
+		if len(p) == 0 {
+			return errors.New("no CacheGroup named " + sdns.CacheGroupName)
+		}
+		sdns.CacheGroupID = p[0].ID
+	}
+
+	if sdns.DeliveryServiceID == 0 && sdns.DeliveryService != "" {
+		dses, _, err := to.GetDeliveryServiceByXMLID(sdns.DeliveryService)
+		if err != nil {
+			return err
+		}
+		if len(dses) == 0 {
+			return errors.New("no deliveryservice with name " + sdns.DeliveryService)
+		}
+		sdns.DeliveryServiceID = dses[0].ID
+	}
 
+	if sdns.TypeID == 0 && sdns.Type != "" {
+		types, _, err := to.GetTypeByName(sdns.Type)
+		if err != nil {
+			return err
+		}
+		if len(types) == 0 {
+			return errors.New("no type with name " + sdns.Type)
+		}
+		sdns.TypeID = types[0].ID
+	}
+
+	return nil
+}
+
+// Create a StaticDNSEntry
+func (to *Session) CreateStaticDNSEntry(sdns tc.StaticDNSEntry) (tc.Alerts, ReqInf, error) {
+	// fill in missing IDs from names
+	staticDNSEntryIDs(to, &sdns)
 	var remoteAddr net.Addr
-	reqBody, err := json.Marshal(cdn)
+	reqBody, err := json.Marshal(sdns)
 	reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: remoteAddr}
 	if err != nil {
 		return tc.Alerts{}, reqInf, err
@@ -48,10 +87,11 @@ func (to *Session) CreateStaticDNSEntry(cdn tc.StaticDNSEntry) (tc.Alerts, ReqIn
 }
 
 // Update a StaticDNSEntry by ID
-func (to *Session) UpdateStaticDNSEntryByID(id int, cdn tc.StaticDNSEntry) (tc.Alerts, ReqInf, int, error) {
-
+func (to *Session) UpdateStaticDNSEntryByID(id int, sdns tc.StaticDNSEntry) (tc.Alerts, ReqInf, int, error) {
+	// fill in missing IDs from names
+	staticDNSEntryIDs(to, &sdns)
 	var remoteAddr net.Addr
-	reqBody, err := json.Marshal(cdn)
+	reqBody, err := json.Marshal(sdns)
 	reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: remoteAddr}
 	if err != nil {
 		return tc.Alerts{}, reqInf, 0, err
diff --git a/traffic_ops/testing/api/v14/cdnfederations_test.go b/traffic_ops/testing/api/v14/cdnfederations_test.go
index 970f4e4..a326fad 100644
--- a/traffic_ops/testing/api/v14/cdnfederations_test.go
+++ b/traffic_ops/testing/api/v14/cdnfederations_test.go
@@ -27,12 +27,14 @@ var fedIDs []int
 func TestCDNFederations(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestDeliveryServices(t)
 	CreateTestCDNFederations(t)
 	UpdateTestCDNFederations(t)
 	GetTestCDNFederations(t)
 	DeleteTestCDNFederations(t)
 	DeleteTestDeliveryServices(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/crconfig_test.go b/traffic_ops/testing/api/v14/crconfig_test.go
index 708cfad..70fdff6 100644
--- a/traffic_ops/testing/api/v14/crconfig_test.go
+++ b/traffic_ops/testing/api/v14/crconfig_test.go
@@ -26,6 +26,7 @@ import (
 func TestCRConfig(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -45,6 +46,7 @@ func TestCRConfig(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/deliveryservice_requests_test.go b/traffic_ops/testing/api/v14/deliveryservice_requests_test.go
index ac6b757..cd336b2 100644
--- a/traffic_ops/testing/api/v14/deliveryservice_requests_test.go
+++ b/traffic_ops/testing/api/v14/deliveryservice_requests_test.go
@@ -61,6 +61,7 @@ func CreateTestDeliveryServiceRequests(t *testing.T) {
 func TestDeliveryServiceRequestRequired(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	dsr := testData.DeliveryServiceRequests[dsrRequired]
 	alerts, _, err := TOSession.CreateDeliveryServiceRequest(dsr)
 	if err != nil {
@@ -70,6 +71,7 @@ func TestDeliveryServiceRequestRequired(t *testing.T) {
 	if len(alerts.Alerts) == 0 {
 		t.Errorf("Expected: validation error alerts, actual: %+v", alerts)
 	}
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
@@ -78,6 +80,7 @@ func TestDeliveryServiceRequestRules(t *testing.T) {
 
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	routingName := strings.Repeat("X", 1) + "." + strings.Repeat("X", 48)
 	// Test the xmlId length and form
 	XMLID := "X " + strings.Repeat("X", 46)
@@ -95,6 +98,7 @@ func TestDeliveryServiceRequestRules(t *testing.T) {
 	if len(alerts.Alerts) == 0 {
 		t.Errorf("Expected: validation error alerts, actual: %+v", alerts)
 	}
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 
@@ -103,6 +107,7 @@ func TestDeliveryServiceRequestRules(t *testing.T) {
 func TestDeliveryServiceRequestTypeFields(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestParameters(t)
 
 	dsr := testData.DeliveryServiceRequests[dsrBadTenant]
@@ -129,6 +134,7 @@ func TestDeliveryServiceRequestTypeFields(t *testing.T) {
 	}
 
 	DeleteTestParameters(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 
@@ -137,6 +143,7 @@ func TestDeliveryServiceRequestTypeFields(t *testing.T) {
 func TestDeliveryServiceRequestBad(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	// try to create non-draft/submitted
 	src := testData.DeliveryServiceRequests[dsrDraft]
 	s, err := tc.RequestStatusFromString("pending")
@@ -153,6 +160,7 @@ func TestDeliveryServiceRequestBad(t *testing.T) {
 		`'status' invalid transition from draft to pending`,
 	}
 	utils.Compare(t, expected, alerts.ToStrings())
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
@@ -162,6 +170,7 @@ func TestDeliveryServiceRequestWorkflow(t *testing.T) {
 
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	// test empty request table
 	dsrs, _, err := TOSession.GetDeliveryServiceRequests()
 	if err != nil {
@@ -212,6 +221,7 @@ func TestDeliveryServiceRequestWorkflow(t *testing.T) {
 	if dsr.Status != tc.RequestStatus("submitted") {
 		t.Errorf("expected status=submitted,  got %s", string(dsr.Status))
 	}
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 
diff --git a/traffic_ops/testing/api/v14/deliveryservicematches_test.go b/traffic_ops/testing/api/v14/deliveryservicematches_test.go
index e530da8..ef98fa5 100644
--- a/traffic_ops/testing/api/v14/deliveryservicematches_test.go
+++ b/traffic_ops/testing/api/v14/deliveryservicematches_test.go
@@ -24,6 +24,7 @@ import (
 func TestDeliveryServiceMatches(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -43,6 +44,7 @@ func TestDeliveryServiceMatches(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/deliveryservices_test.go b/traffic_ops/testing/api/v14/deliveryservices_test.go
index f92f40f..6fdfdf3 100644
--- a/traffic_ops/testing/api/v14/deliveryservices_test.go
+++ b/traffic_ops/testing/api/v14/deliveryservices_test.go
@@ -26,6 +26,7 @@ import (
 func TestDeliveryServices(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -45,6 +46,7 @@ func TestDeliveryServices(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/deliveryserviceservers_test.go b/traffic_ops/testing/api/v14/deliveryserviceservers_test.go
index 893bcad..fd061ab 100644
--- a/traffic_ops/testing/api/v14/deliveryserviceservers_test.go
+++ b/traffic_ops/testing/api/v14/deliveryserviceservers_test.go
@@ -24,6 +24,7 @@ import (
 func TestDeliveryServiceServers(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -43,6 +44,7 @@ func TestDeliveryServiceServers(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/deliveryservicesideligible_test.go b/traffic_ops/testing/api/v14/deliveryservicesideligible_test.go
index ad4a691..26cea53 100644
--- a/traffic_ops/testing/api/v14/deliveryservicesideligible_test.go
+++ b/traffic_ops/testing/api/v14/deliveryservicesideligible_test.go
@@ -22,6 +22,7 @@ import (
 func TestDeliveryServicesEligible(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -41,6 +42,7 @@ func TestDeliveryServicesEligible(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/federations_test.go b/traffic_ops/testing/api/v14/federations_test.go
index 02cd4ee..44946c8 100644
--- a/traffic_ops/testing/api/v14/federations_test.go
+++ b/traffic_ops/testing/api/v14/federations_test.go
@@ -24,6 +24,8 @@ import (
 func TestFederations(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -46,6 +48,7 @@ func TestFederations(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/origins_test.go b/traffic_ops/testing/api/v14/origins_test.go
index c7970c7..82fb881 100644
--- a/traffic_ops/testing/api/v14/origins_test.go
+++ b/traffic_ops/testing/api/v14/origins_test.go
@@ -26,6 +26,8 @@ func TestOrigins(t *testing.T) {
 	defer DeleteTestCDNs(t)
 	CreateTestTypes(t)
 	defer DeleteTestTypes(t)
+	CreateTestTenants(t)
+	defer DeleteTestTenants(t)
 	CreateTestProfiles(t)
 	defer DeleteTestProfiles(t)
 	CreateTestStatuses(t)
@@ -44,7 +46,6 @@ func TestOrigins(t *testing.T) {
 	defer DeleteTestDeliveryServices(t)
 	CreateTestCoordinates(t)
 	defer DeleteTestCoordinates(t)
-	// TODO: add tenants once their API integration tests are implemented
 
 	CreateTestOrigins(t)
 	defer DeleteTestOrigins(t)
diff --git a/traffic_ops/testing/api/v14/staticdnsentries_test.go b/traffic_ops/testing/api/v14/staticdnsentries_test.go
index 8fd1736..4d4427c 100644
--- a/traffic_ops/testing/api/v14/staticdnsentries_test.go
+++ b/traffic_ops/testing/api/v14/staticdnsentries_test.go
@@ -27,6 +27,7 @@ func TestStaticDNSEntries(t *testing.T) {
 
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -48,6 +49,7 @@ func TestStaticDNSEntries(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 
diff --git a/traffic_ops/testing/api/v14/steeringtargets_test.go b/traffic_ops/testing/api/v14/steeringtargets_test.go
index b709ba8..d6d65fe 100644
--- a/traffic_ops/testing/api/v14/steeringtargets_test.go
+++ b/traffic_ops/testing/api/v14/steeringtargets_test.go
@@ -25,6 +25,8 @@ import (
 func TestSteeringTargets(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -47,6 +49,7 @@ func TestSteeringTargets(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }
diff --git a/traffic_ops/testing/api/v14/tc-fixtures.json b/traffic_ops/testing/api/v14/tc-fixtures.json
index 741aaa5..8292694 100644
--- a/traffic_ops/testing/api/v14/tc-fixtures.json
+++ b/traffic_ops/testing/api/v14/tc-fixtures.json
@@ -351,6 +351,8 @@
     "origins": [
         {
             "name": "origin1",
+            "cachegroup": "originCachegroup",
+            "deliveryService": "test-ds1",
             "fqdn": "origin1.example.com",
             "ipAddress": "1.2.3.4",
             "ip6Address": "dead:beef:cafe::42",
@@ -360,6 +362,8 @@
         },
         {
             "name": "origin2",
+            "cachegroup": "originCachegroup",
+            "deliveryService": "test-ds2",
             "fqdn": "origin2.example.com",
             "ipAddress": "5.6.7.8",
             "ip6Address": "cafe::42",
diff --git a/traffic_ops/testing/api/v14/userdeliveryservices_test.go b/traffic_ops/testing/api/v14/userdeliveryservices_test.go
index 3780af8..c832174 100644
--- a/traffic_ops/testing/api/v14/userdeliveryservices_test.go
+++ b/traffic_ops/testing/api/v14/userdeliveryservices_test.go
@@ -23,6 +23,7 @@ import (
 func TestUserDeliveryServices(t *testing.T) {
 	CreateTestCDNs(t)
 	CreateTestTypes(t)
+	CreateTestTenants(t)
 	CreateTestProfiles(t)
 	CreateTestStatuses(t)
 	CreateTestDivisions(t)
@@ -42,6 +43,7 @@ func TestUserDeliveryServices(t *testing.T) {
 	DeleteTestDivisions(t)
 	DeleteTestStatuses(t)
 	DeleteTestProfiles(t)
+	DeleteTestTenants(t)
 	DeleteTestTypes(t)
 	DeleteTestCDNs(t)
 }