Instead of just adding test generated files to .gitignore prevent them from being produced in the first place. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>tags/v1.11.0-rc1
@@ -66,8 +66,6 @@ coverage.all | |||
/integrations/pgsql.ini | |||
/integrations/mssql.ini | |||
/node_modules | |||
/modules/indexer/issues/indexers | |||
routers/repo/authorized_keys | |||
/yarn.lock | |||
/public/js | |||
/public/css |
@@ -5,12 +5,12 @@ | |||
package code | |||
import ( | |||
"io/ioutil" | |||
"os" | |||
"path/filepath" | |||
"testing" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/setting" | |||
"github.com/stretchr/testify/assert" | |||
@@ -23,15 +23,24 @@ func TestMain(m *testing.M) { | |||
func TestIndexAndSearch(t *testing.T) { | |||
models.PrepareTestEnv(t) | |||
dir := "./bleve.index" | |||
os.RemoveAll(dir) | |||
dir, err := ioutil.TempDir("", "bleve.index") | |||
assert.NoError(t, err) | |||
if err != nil { | |||
assert.Fail(t, "Unable to create temporary directory") | |||
return | |||
} | |||
defer os.RemoveAll(dir) | |||
setting.Indexer.RepoIndexerEnabled = true | |||
idx, _, err := NewBleveIndexer(dir) | |||
if err != nil { | |||
idx.Close() | |||
log.Fatal("indexer.Init: %v", err) | |||
assert.Fail(t, "Unable to create indexer Error: %v", err) | |||
if idx != nil { | |||
idx.Close() | |||
} | |||
return | |||
} | |||
defer idx.Close() | |||
err = idx.Index(1) | |||
assert.NoError(t, err) |
@@ -9,6 +9,7 @@ import ( | |||
"os" | |||
"strconv" | |||
"code.gitea.io/gitea/modules/log" | |||
"github.com/blevesearch/bleve" | |||
"github.com/blevesearch/bleve/analysis/analyzer/custom" | |||
"github.com/blevesearch/bleve/analysis/token/lowercase" | |||
@@ -184,6 +185,15 @@ func (b *BleveIndexer) Init() (bool, error) { | |||
return false, err | |||
} | |||
// Close will close the bleve indexer | |||
func (b *BleveIndexer) Close() { | |||
if b.indexer != nil { | |||
if err := b.indexer.Close(); err != nil { | |||
log.Error("Error whilst closing indexer: %v", err) | |||
} | |||
} | |||
} | |||
// Index will save the index data | |||
func (b *BleveIndexer) Index(issues []*IndexerData) error { | |||
batch := rupture.NewFlushingBatch(b.indexer, maxBatchSize) |
@@ -5,6 +5,7 @@ | |||
package issues | |||
import ( | |||
"io/ioutil" | |||
"os" | |||
"testing" | |||
@@ -12,12 +13,20 @@ import ( | |||
) | |||
func TestBleveIndexAndSearch(t *testing.T) { | |||
dir := "./bleve.index" | |||
indexer := NewBleveIndexer(dir) | |||
dir, err := ioutil.TempDir("", "bleve.index") | |||
assert.NoError(t, err) | |||
if err != nil { | |||
assert.Fail(t, "Unable to create temporary directory") | |||
return | |||
} | |||
defer os.RemoveAll(dir) | |||
indexer := NewBleveIndexer(dir) | |||
defer indexer.Close() | |||
_, err := indexer.Init() | |||
assert.NoError(t, err) | |||
if _, err := indexer.Init(); err != nil { | |||
assert.Fail(t, "Unable to initialise bleve indexer: %v", err) | |||
return | |||
} | |||
err = indexer.Index([]*IndexerData{ | |||
{ |
@@ -5,7 +5,9 @@ | |||
package issues | |||
import ( | |||
"io/ioutil" | |||
"os" | |||
"path" | |||
"path/filepath" | |||
"testing" | |||
"time" | |||
@@ -23,10 +25,29 @@ func TestMain(m *testing.M) { | |||
func TestBleveSearchIssues(t *testing.T) { | |||
assert.NoError(t, models.PrepareTestDatabase()) | |||
os.RemoveAll(setting.Indexer.IssueQueueDir) | |||
os.RemoveAll(setting.Indexer.IssuePath) | |||
tmpIndexerDir, err := ioutil.TempDir("", "issues-indexer") | |||
if err != nil { | |||
assert.Fail(t, "Unable to create temporary directory: %v", err) | |||
return | |||
} | |||
oldQueueDir := setting.Indexer.IssueQueueDir | |||
oldIssuePath := setting.Indexer.IssuePath | |||
setting.Indexer.IssueQueueDir = path.Join(tmpIndexerDir, "issues.queue") | |||
setting.Indexer.IssuePath = path.Join(tmpIndexerDir, "issues.queue") | |||
defer func() { | |||
setting.Indexer.IssueQueueDir = oldQueueDir | |||
setting.Indexer.IssuePath = oldIssuePath | |||
os.RemoveAll(tmpIndexerDir) | |||
}() | |||
setting.Indexer.IssueType = "bleve" | |||
InitIssueIndexer(true) | |||
defer func() { | |||
indexer := holder.get() | |||
if bleveIndexer, ok := indexer.(*BleveIndexer); ok { | |||
bleveIndexer.Close() | |||
} | |||
}() | |||
time.Sleep(5 * time.Second) | |||
@@ -45,6 +66,7 @@ func TestBleveSearchIssues(t *testing.T) { | |||
ids, err = SearchIssuesByKeyword([]int64{1}, "good") | |||
assert.NoError(t, err) | |||
assert.EqualValues(t, []int64{1}, ids) | |||
} | |||
func TestDBSearchIssues(t *testing.T) { |
@@ -5,18 +5,42 @@ | |||
package repo | |||
import ( | |||
"io/ioutil" | |||
"net/http" | |||
"os" | |||
"testing" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/modules/auth" | |||
"code.gitea.io/gitea/modules/context" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/test" | |||
"github.com/stretchr/testify/assert" | |||
) | |||
func createSSHAuthorizedKeysTmpPath(t *testing.T) func() { | |||
tmpDir, err := ioutil.TempDir("", "tmp-ssh") | |||
if err != nil { | |||
assert.Fail(t, "Unable to create temporary directory: %v", err) | |||
return nil | |||
} | |||
oldPath := setting.SSH.RootPath | |||
setting.SSH.RootPath = tmpDir | |||
return func() { | |||
setting.SSH.RootPath = oldPath | |||
os.RemoveAll(tmpDir) | |||
} | |||
} | |||
func TestAddReadOnlyDeployKey(t *testing.T) { | |||
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil { | |||
defer deferable() | |||
} else { | |||
return | |||
} | |||
models.PrepareTestEnv(t) | |||
ctx := test.MockContext(t, "user2/repo1/settings/keys") | |||
@@ -39,6 +63,12 @@ func TestAddReadOnlyDeployKey(t *testing.T) { | |||
} | |||
func TestAddReadWriteOnlyDeployKey(t *testing.T) { | |||
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil { | |||
defer deferable() | |||
} else { | |||
return | |||
} | |||
models.PrepareTestEnv(t) | |||
ctx := test.MockContext(t, "user2/repo1/settings/keys") |