From 9d0253a9fad085c67e6c985f2a17451d78ac63e7 Mon Sep 17 00:00:00 2001
From: Gusted <williamzijl7@hotmail.com>
Date: Tue, 10 May 2022 16:18:20 +0200
Subject: [PATCH] Use better message for consistency check (#19672)

- Don't log the reflect struct, but instead log the ID of the struct.
This improves the error message, as you would actually know which row is
the error.
---
 models/unittest/consistency.go | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/models/unittest/consistency.go b/models/unittest/consistency.go
index af05348868..46f889746a 100644
--- a/models/unittest/consistency.go
+++ b/models/unittest/consistency.go
@@ -73,8 +73,8 @@ func init() {
 		AssertCountByCond(t, "follow", builder.Eq{"user_id": user.int("ID")}, user.int("NumFollowing"))
 		AssertCountByCond(t, "follow", builder.Eq{"follow_id": user.int("ID")}, user.int("NumFollowers"))
 		if user.int("Type") != modelsUserTypeOrganization {
-			assert.EqualValues(t, 0, user.int("NumMembers"))
-			assert.EqualValues(t, 0, user.int("NumTeams"))
+			assert.EqualValues(t, 0, user.int("NumMembers"), "Unexpected number of members for user id: %d", user.int("ID"))
+			assert.EqualValues(t, 0, user.int("NumTeams"), "Unexpected number of teams for user id: %d", user.int("ID"))
 		}
 	}
 
@@ -91,37 +91,37 @@ func init() {
 		actual := GetCountByCond(t, "watch", builder.Eq{"repo_id": repo.int("ID")}.
 			And(builder.Neq{"mode": modelsRepoWatchModeDont}))
 		assert.EqualValues(t, repo.int("NumWatches"), actual,
-			"Unexpected number of watches for repo %+v", repo)
+			"Unexpected number of watches for repo id: %d", repo.int("ID"))
 
 		actual = GetCountByCond(t, "issue", builder.Eq{"is_pull": false, "repo_id": repo.int("ID")})
 		assert.EqualValues(t, repo.int("NumIssues"), actual,
-			"Unexpected number of issues for repo %+v", repo)
+			"Unexpected number of issues for repo id: %d", repo.int("ID"))
 
 		actual = GetCountByCond(t, "issue", builder.Eq{"is_pull": false, "is_closed": true, "repo_id": repo.int("ID")})
 		assert.EqualValues(t, repo.int("NumClosedIssues"), actual,
-			"Unexpected number of closed issues for repo %+v", repo)
+			"Unexpected number of closed issues for repo id: %d", repo.int("ID"))
 
 		actual = GetCountByCond(t, "issue", builder.Eq{"is_pull": true, "repo_id": repo.int("ID")})
 		assert.EqualValues(t, repo.int("NumPulls"), actual,
-			"Unexpected number of pulls for repo %+v", repo)
+			"Unexpected number of pulls for repo id: %d", repo.int("ID"))
 
 		actual = GetCountByCond(t, "issue", builder.Eq{"is_pull": true, "is_closed": true, "repo_id": repo.int("ID")})
 		assert.EqualValues(t, repo.int("NumClosedPulls"), actual,
-			"Unexpected number of closed pulls for repo %+v", repo)
+			"Unexpected number of closed pulls for repo id: %d", repo.int("ID"))
 
 		actual = GetCountByCond(t, "milestone", builder.Eq{"is_closed": true, "repo_id": repo.int("ID")})
 		assert.EqualValues(t, repo.int("NumClosedMilestones"), actual,
-			"Unexpected number of closed milestones for repo %+v", repo)
+			"Unexpected number of closed milestones for repo id: %d", repo.int("ID"))
 	}
 
 	checkForIssueConsistency := func(t assert.TestingT, bean interface{}) {
 		issue := reflectionWrap(bean)
 		typeComment := modelsCommentTypeComment
 		actual := GetCountByCond(t, "comment", builder.Eq{"`type`": typeComment, "issue_id": issue.int("ID")})
-		assert.EqualValues(t, issue.int("NumComments"), actual, "Unexpected number of comments for issue %+v", issue)
+		assert.EqualValues(t, issue.int("NumComments"), actual, "Unexpected number of comments for issue id: %d", issue.int("ID"))
 		if issue.bool("IsPull") {
 			prRow := AssertExistsAndLoadMap(t, "pull_request", builder.Eq{"issue_id": issue.int("ID")})
-			assert.EqualValues(t, parseInt(prRow["index"]), issue.int("Index"))
+			assert.EqualValues(t, parseInt(prRow["index"]), issue.int("Index"), "Unexpected index for issue id: %d", issue.int("ID"))
 		}
 	}
 
@@ -129,7 +129,7 @@ func init() {
 		pr := reflectionWrap(bean)
 		issueRow := AssertExistsAndLoadMap(t, "issue", builder.Eq{"id": pr.int("IssueID")})
 		assert.True(t, parseBool(issueRow["is_pull"]))
-		assert.EqualValues(t, parseInt(issueRow["index"]), pr.int("Index"))
+		assert.EqualValues(t, parseInt(issueRow["index"]), pr.int("Index"), "Unexpected index for pull request id: %d", pr.int("ID"))
 	}
 
 	checkForMilestoneConsistency := func(t assert.TestingT, bean interface{}) {
@@ -137,7 +137,7 @@ func init() {
 		AssertCountByCond(t, "issue", builder.Eq{"milestone_id": milestone.int("ID")}, milestone.int("NumIssues"))
 
 		actual := GetCountByCond(t, "issue", builder.Eq{"is_closed": true, "milestone_id": milestone.int("ID")})
-		assert.EqualValues(t, milestone.int("NumClosedIssues"), actual, "Unexpected number of closed issues for milestone %+v", milestone)
+		assert.EqualValues(t, milestone.int("NumClosedIssues"), actual, "Unexpected number of closed issues for milestone id: %d", milestone.int("ID"))
 
 		completeness := 0
 		if milestone.int("NumIssues") > 0 {
@@ -153,7 +153,7 @@ func init() {
 			Query()
 		assert.NoError(t, err)
 
-		assert.EqualValues(t, label.int("NumIssues"), len(issueLabels), "Unexpected number of issue for label %+v", label)
+		assert.EqualValues(t, label.int("NumIssues"), len(issueLabels), "Unexpected number of issue for label id: %d", label.int("ID"))
 
 		issueIDs := make([]int, len(issueLabels))
 		for i, issueLabel := range issueLabels {
@@ -164,7 +164,7 @@ func init() {
 		if len(issueIDs) > 0 {
 			expected = GetCountByCond(t, "issue", builder.In("id", issueIDs).And(builder.Eq{"is_closed": true}))
 		}
-		assert.EqualValues(t, expected, label.int("NumClosedIssues"), "Unexpected number of closed issues for label %+v", label)
+		assert.EqualValues(t, expected, label.int("NumClosedIssues"), "Unexpected number of closed issues for label id: %d", label.int("ID"))
 	}
 
 	checkForTeamConsistency := func(t assert.TestingT, bean interface{}) {
@@ -177,7 +177,7 @@ func init() {
 		action := reflectionWrap(bean)
 		if action.int("RepoID") != 1700 { // dangling intentional
 			repoRow := AssertExistsAndLoadMap(t, "repository", builder.Eq{"id": action.int("RepoID")})
-			assert.Equal(t, parseBool(repoRow["is_private"]), action.bool("IsPrivate"), "action: %+v", action)
+			assert.Equal(t, parseBool(repoRow["is_private"]), action.bool("IsPrivate"), "Unexpected is_private field for action id: %d", action.int("ID"))
 		}
 	}