diff --git a/models/consistency_test.go b/models/consistency_test.go
index 703d5e3834..cab8f9a782 100644
--- a/models/consistency_test.go
+++ b/models/consistency_test.go
@@ -73,37 +73,46 @@ func (user *User) CheckForConsistency(t *testing.T) {
 	assertCount(t, &Team{OrgID: user.ID}, user.NumTeams)
 	assertCount(t, &Follow{UserID: user.ID}, user.NumFollowing)
 	assertCount(t, &Follow{FollowID: user.ID}, user.NumFollowers)
+	if user.Type != UserTypeOrganization {
+		assert.EqualValues(t, 0, user.NumMembers)
+		assert.EqualValues(t, 0, user.NumTeams)
+	}
 }
 
 func (repo *Repository) CheckForConsistency(t *testing.T) {
 	assertCount(t, &Star{RepoID: repo.ID}, repo.NumStars)
 	assertCount(t, &Watch{RepoID: repo.ID}, repo.NumWatches)
-	assertCount(t, &Issue{RepoID: repo.ID}, repo.NumIssues)
 	assertCount(t, &Milestone{RepoID: repo.ID}, repo.NumMilestones)
 	assertCount(t, &Repository{ForkID: repo.ID}, repo.NumForks)
 	if repo.IsFork {
 		AssertExistsAndLoadBean(t, &Repository{ID: repo.ForkID})
 	}
 
-	actual := getCount(t, x.Where("is_closed=1"), &Issue{RepoID: repo.ID})
+	actual := getCount(t, x.Where("is_pull=?", false), &Issue{RepoID: repo.ID})
+	assert.EqualValues(t, repo.NumIssues, actual,
+		"Unexpected number of issues for repo %+v", repo)
+
+	actual = getCount(t, x.Where("is_pull=? AND is_closed=?", false, true), &Issue{RepoID: repo.ID})
 	assert.EqualValues(t, repo.NumClosedIssues, actual,
 		"Unexpected number of closed issues for repo %+v", repo)
 
-	actual = getCount(t, x.Where("is_pull=1"), &Issue{RepoID: repo.ID})
+	actual = getCount(t, x.Where("is_pull=?", true), &Issue{RepoID: repo.ID})
 	assert.EqualValues(t, repo.NumPulls, actual,
 		"Unexpected number of pulls for repo %+v", repo)
 
-	actual = getCount(t, x.Where("is_pull=1 AND is_closed=1"), &Issue{RepoID: repo.ID})
+	actual = getCount(t, x.Where("is_pull=? AND is_closed=?", true, true), &Issue{RepoID: repo.ID})
 	assert.EqualValues(t, repo.NumClosedPulls, actual,
 		"Unexpected number of closed pulls for repo %+v", repo)
 
-	actual = getCount(t, x.Where("is_closed=1"), &Milestone{RepoID: repo.ID})
+	actual = getCount(t, x.Where("is_closed=?", true), &Milestone{RepoID: repo.ID})
 	assert.EqualValues(t, repo.NumClosedMilestones, actual,
 		"Unexpected number of closed milestones for repo %+v", repo)
 }
 
 func (issue *Issue) CheckForConsistency(t *testing.T) {
-	assertCount(t, &Comment{IssueID: issue.ID}, issue.NumComments)
+	actual := getCount(t, x.Where("type=?", CommentTypeComment), &Comment{IssueID: issue.ID})
+	assert.EqualValues(t, issue.NumComments, actual,
+		"Unexpected number of comments for issue %+v", issue)
 	if issue.IsPull {
 		pr := AssertExistsAndLoadBean(t, &PullRequest{IssueID: issue.ID}).(*PullRequest)
 		assert.EqualValues(t, pr.Index, issue.Index)
@@ -119,7 +128,7 @@ func (pr *PullRequest) CheckForConsistency(t *testing.T) {
 func (milestone *Milestone) CheckForConsistency(t *testing.T) {
 	assertCount(t, &Issue{MilestoneID: milestone.ID}, milestone.NumIssues)
 
-	actual := getCount(t, x.Where("is_closed=1"), &Issue{MilestoneID: milestone.ID})
+	actual := getCount(t, x.Where("is_closed=?", true), &Issue{MilestoneID: milestone.ID})
 	assert.EqualValues(t, milestone.NumClosedIssues, actual,
 		"Unexpected number of closed issues for milestone %+v", milestone)
 }
@@ -137,7 +146,7 @@ func (label *Label) CheckForConsistency(t *testing.T) {
 
 	expected := int64(0)
 	if len(issueIDs) > 0 {
-		expected = getCount(t, x.In("id", issueIDs).Where("is_closed=1"), &Issue{})
+		expected = getCount(t, x.In("id", issueIDs).Where("is_closed=?", true), &Issue{})
 	}
 	assert.EqualValues(t, expected, label.NumClosedIssues,
 		"Unexpected number of closed issues for label %+v", label)
diff --git a/models/fixtures/issue.yml b/models/fixtures/issue.yml
index 38782f8b90..85bdac397f 100644
--- a/models/fixtures/issue.yml
+++ b/models/fixtures/issue.yml
@@ -8,7 +8,7 @@
   content: content1
   is_closed: false
   is_pull: false
-  num_comments: 1
+  num_comments: 0
   created_unix: 946684800
   updated_unix: 978307200
 
diff --git a/models/fixtures/repository.yml b/models/fixtures/repository.yml
index 9f4b496010..5e45d58b28 100644
--- a/models/fixtures/repository.yml
+++ b/models/fixtures/repository.yml
@@ -4,7 +4,7 @@
   lower_name: repo1
   name: repo1
   is_private: false
-  num_issues: 4
+  num_issues: 2
   num_closed_issues: 1
   num_pulls: 2
   num_closed_pulls: 0
diff --git a/models/issue_label_test.go b/models/issue_label_test.go
index a1cdb8c9b6..2ef396668a 100644
--- a/models/issue_label_test.go
+++ b/models/issue_label_test.go
@@ -54,6 +54,7 @@ func TestNewLabels(t *testing.T) {
 	for _, label := range labels {
 		AssertExistsAndLoadBean(t, label)
 	}
+	CheckConsistencyFor(t, &Label{}, &Repository{})
 }
 
 func TestGetLabelByID(t *testing.T) {
@@ -138,6 +139,7 @@ func TestUpdateLabel(t *testing.T) {
 	assert.NoError(t, UpdateLabel(label))
 	newLabel := AssertExistsAndLoadBean(t, &Label{ID: 1}).(*Label)
 	assert.Equal(t, *label, *newLabel)
+	CheckConsistencyFor(t, &Label{}, &Repository{})
 }
 
 func TestDeleteLabel(t *testing.T) {
@@ -150,6 +152,7 @@ func TestDeleteLabel(t *testing.T) {
 	AssertNotExistsBean(t, &Label{ID: label.ID, RepoID: label.RepoID})
 
 	assert.NoError(t, DeleteLabel(NonexistentID, NonexistentID))
+	CheckConsistencyFor(t, &Label{}, &Repository{})
 }
 
 func TestHasIssueLabel(t *testing.T) {
@@ -180,6 +183,7 @@ func TestNewIssueLabel(t *testing.T) {
 
 	// re-add existing IssueLabel
 	assert.NoError(t, NewIssueLabel(issue, label, doer))
+	CheckConsistencyFor(t, &Issue{}, &Label{})
 }
 
 func TestNewIssueLabels(t *testing.T) {
@@ -208,6 +212,8 @@ func TestNewIssueLabels(t *testing.T) {
 
 	// corner case: test empty slice
 	assert.NoError(t, NewIssueLabels(issue, []*Label{}, doer))
+
+	CheckConsistencyFor(t, &Issue{}, &Label{})
 }
 
 func TestDeleteIssueLabel(t *testing.T) {
@@ -241,4 +247,6 @@ func TestDeleteIssueLabel(t *testing.T) {
 	testSuccess(1, 1, 2)
 	testSuccess(2, 5, 2)
 	testSuccess(1, 1, 2) // delete non-existent IssueLabel
+
+	CheckConsistencyFor(t, &Issue{}, &Label{})
 }