mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00:00 
			
		
		
		
	Fix "access" fixtures and tests (#10247)
* Add fixture gen tool and fix "access" test * Close file before exiting * Add missing repo_unit for repo id: 5 * Fix count on TestAPIOrgRepos Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		@@ -231,7 +231,7 @@ func TestAPIOrgRepos(t *testing.T) {
 | 
				
			|||||||
		includesPrivate bool
 | 
							includesPrivate bool
 | 
				
			||||||
	}{
 | 
						}{
 | 
				
			||||||
		nil:   {count: 1},
 | 
							nil:   {count: 1},
 | 
				
			||||||
		user:  {count: 2, includesPrivate: true},
 | 
							user:  {count: 3, includesPrivate: true},
 | 
				
			||||||
		user2: {count: 3, includesPrivate: true},
 | 
							user2: {count: 3, includesPrivate: true},
 | 
				
			||||||
		user3: {count: 1},
 | 
							user3: {count: 1},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -112,7 +112,7 @@ func TestUser_GetAccessibleRepositories(t *testing.T) {
 | 
				
			|||||||
	user2 := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
 | 
						user2 := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
 | 
				
			||||||
	repos, err = user2.GetAccessibleRepositories(0)
 | 
						repos, err = user2.GetAccessibleRepositories(0)
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
	assert.Len(t, repos, 1)
 | 
						assert.Len(t, repos, 4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user29 := AssertExistsAndLoadBean(t, &User{ID: 29}).(*User)
 | 
						user29 := AssertExistsAndLoadBean(t, &User{ID: 29}).(*User)
 | 
				
			||||||
	repos, err = user29.GetAccessibleRepositories(0)
 | 
						repos, err = user29.GetAccessibleRepositories(0)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								models/fixture_access_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								models/fixture_access_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
				
			||||||
 | 
					// Use of this source code is governed by a MIT-style
 | 
				
			||||||
 | 
					// license that can be found in the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// +build access_fixtures
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file is excluded from build and tests, and is intended for assisting
 | 
				
			||||||
 | 
					// in keeping access.yml in sync with the other .yml files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// To use it, do:
 | 
				
			||||||
 | 
					// cd models
 | 
				
			||||||
 | 
					// go test -tags "access_fixtures sqlite sqlite_unlock_notify" -run TestBuildAccessFixturesYaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"bufio"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestBuildAccessFixturesYaml(t *testing.T) {
 | 
				
			||||||
 | 
						assert.NoError(t, PrepareTestDatabase())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						repos := make([]*Repository, 0, 50)
 | 
				
			||||||
 | 
						assert.NoError(t, x.Find(&repos))
 | 
				
			||||||
 | 
						for _, repo := range repos {
 | 
				
			||||||
 | 
							repo.MustOwner()
 | 
				
			||||||
 | 
							assert.NoError(t, repo.RecalculateAccesses())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						f, err := os.Create("fixtures/access.yml")
 | 
				
			||||||
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
						w := bufio.NewWriter(f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						accesses := make([]*Access, 0, 200)
 | 
				
			||||||
 | 
						assert.NoError(t, x.OrderBy("user_id, repo_id").Find(&accesses))
 | 
				
			||||||
 | 
						for i, a := range accesses {
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "-\n")
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "  id: %d\n", i+1)
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "  user_id: %d\n", a.UserID)
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "  repo_id: %d\n", a.RepoID)
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "  mode: %d\n", a.Mode)
 | 
				
			||||||
 | 
							fmt.Fprintf(w, "\n")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						w.Flush()
 | 
				
			||||||
 | 
						f.Close()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -2,88 +2,125 @@
 | 
				
			|||||||
  id: 1
 | 
					  id: 1
 | 
				
			||||||
  user_id: 2
 | 
					  user_id: 2
 | 
				
			||||||
  repo_id: 3
 | 
					  repo_id: 3
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 2
 | 
					  id: 2
 | 
				
			||||||
  user_id: 4
 | 
					  user_id: 2
 | 
				
			||||||
  repo_id: 4
 | 
					  repo_id: 5
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 3
 | 
					  id: 3
 | 
				
			||||||
  user_id: 4
 | 
					  user_id: 2
 | 
				
			||||||
  repo_id: 3
 | 
					  repo_id: 24
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 4
 | 
					  id: 4
 | 
				
			||||||
  user_id: 15
 | 
					  user_id: 2
 | 
				
			||||||
  repo_id: 22
 | 
					  repo_id: 32
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 5
 | 
					  id: 5
 | 
				
			||||||
  user_id: 15
 | 
					  user_id: 4
 | 
				
			||||||
  repo_id: 21
 | 
					  repo_id: 3
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 6
 | 
					  id: 6
 | 
				
			||||||
  user_id: 15
 | 
					  user_id: 4
 | 
				
			||||||
  repo_id: 23
 | 
					  repo_id: 4
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 7
 | 
					  id: 7
 | 
				
			||||||
  user_id: 15
 | 
					  user_id: 4
 | 
				
			||||||
  repo_id: 24
 | 
					  repo_id: 40
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 8
 | 
					  id: 8
 | 
				
			||||||
  user_id: 18
 | 
					  user_id: 15
 | 
				
			||||||
  repo_id: 23
 | 
					  repo_id: 21
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 9
 | 
					  id: 9
 | 
				
			||||||
  user_id: 18
 | 
					  user_id: 15
 | 
				
			||||||
  repo_id: 24
 | 
					  repo_id: 22
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 10
 | 
					  id: 10
 | 
				
			||||||
  user_id: 18
 | 
					  user_id: 15
 | 
				
			||||||
  repo_id: 22
 | 
					  repo_id: 23
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 11
 | 
					  id: 11
 | 
				
			||||||
  user_id: 18
 | 
					  user_id: 15
 | 
				
			||||||
  repo_id: 21
 | 
					  repo_id: 24
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 12
 | 
					  id: 12
 | 
				
			||||||
  user_id: 20
 | 
					  user_id: 15
 | 
				
			||||||
  repo_id: 27
 | 
					  repo_id: 32
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 13
 | 
					  id: 13
 | 
				
			||||||
  user_id: 20
 | 
					  user_id: 18
 | 
				
			||||||
  repo_id: 28
 | 
					  repo_id: 21
 | 
				
			||||||
  mode: 4 # owner
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 14
 | 
					  id: 14
 | 
				
			||||||
  user_id: 29
 | 
					  user_id: 18
 | 
				
			||||||
  repo_id: 4
 | 
					  repo_id: 22
 | 
				
			||||||
  mode: 2 # write (collaborator)
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 15
 | 
					  id: 15
 | 
				
			||||||
 | 
					  user_id: 18
 | 
				
			||||||
 | 
					  repo_id: 23
 | 
				
			||||||
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 16
 | 
				
			||||||
 | 
					  user_id: 18
 | 
				
			||||||
 | 
					  repo_id: 24
 | 
				
			||||||
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 17
 | 
				
			||||||
 | 
					  user_id: 20
 | 
				
			||||||
 | 
					  repo_id: 24
 | 
				
			||||||
 | 
					  mode: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 18
 | 
				
			||||||
 | 
					  user_id: 20
 | 
				
			||||||
 | 
					  repo_id: 27
 | 
				
			||||||
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 19
 | 
				
			||||||
 | 
					  user_id: 20
 | 
				
			||||||
 | 
					  repo_id: 28
 | 
				
			||||||
 | 
					  mode: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 20
 | 
				
			||||||
 | 
					  user_id: 29
 | 
				
			||||||
 | 
					  repo_id: 4
 | 
				
			||||||
 | 
					  mode: 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 21
 | 
				
			||||||
  user_id: 29
 | 
					  user_id: 29
 | 
				
			||||||
  repo_id: 24
 | 
					  repo_id: 24
 | 
				
			||||||
  mode: 1 # read
 | 
					  mode: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,3 +21,27 @@
 | 
				
			|||||||
  repo_id: 4
 | 
					  repo_id: 4
 | 
				
			||||||
  user_id: 29
 | 
					  user_id: 29
 | 
				
			||||||
  mode: 2 # write
 | 
					  mode: 2 # write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 5
 | 
				
			||||||
 | 
					  repo_id: 21
 | 
				
			||||||
 | 
					  user_id: 15
 | 
				
			||||||
 | 
					  mode: 2 # write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 6
 | 
				
			||||||
 | 
					  repo_id: 21
 | 
				
			||||||
 | 
					  user_id: 18
 | 
				
			||||||
 | 
					  mode: 2 # write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 7
 | 
				
			||||||
 | 
					  repo_id: 22
 | 
				
			||||||
 | 
					  user_id: 15
 | 
				
			||||||
 | 
					  mode: 2 # write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 8
 | 
				
			||||||
 | 
					  repo_id: 22
 | 
				
			||||||
 | 
					  user_id: 18
 | 
				
			||||||
 | 
					  mode: 2 # write
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -478,4 +478,39 @@
 | 
				
			|||||||
  repo_id: 2
 | 
					  repo_id: 2
 | 
				
			||||||
  type: 2
 | 
					  type: 2
 | 
				
			||||||
  config: "{}"
 | 
					  config: "{}"
 | 
				
			||||||
  created_unix: 946684810
 | 
					  created_unix: 946684810
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 70
 | 
				
			||||||
 | 
					  repo_id: 5
 | 
				
			||||||
 | 
					  type: 4
 | 
				
			||||||
 | 
					  config: "{}"
 | 
				
			||||||
 | 
					  created_unix: 946684810
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 71
 | 
				
			||||||
 | 
					  repo_id: 5
 | 
				
			||||||
 | 
					  type: 5
 | 
				
			||||||
 | 
					  config: "{}"
 | 
				
			||||||
 | 
					  created_unix: 946684810
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 72
 | 
				
			||||||
 | 
					  repo_id: 5
 | 
				
			||||||
 | 
					  type: 1
 | 
				
			||||||
 | 
					  config: "{}"
 | 
				
			||||||
 | 
					  created_unix: 946684810
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 73
 | 
				
			||||||
 | 
					  repo_id: 5
 | 
				
			||||||
 | 
					  type: 2
 | 
				
			||||||
 | 
					  config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}"
 | 
				
			||||||
 | 
					  created_unix: 946684810
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					  id: 74
 | 
				
			||||||
 | 
					  repo_id: 5
 | 
				
			||||||
 | 
					  type: 3
 | 
				
			||||||
 | 
					  config: "{\"IgnoreWhitespaceConflicts\":false,\"AllowMerge\":true,\"AllowRebase\":true,\"AllowRebaseMerge\":true,\"AllowSquash\":true}"
 | 
				
			||||||
 | 
					  created_unix: 946684810
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user