Skip to content
Snippets Groups Projects

Initial implementation of an elasticsearch indexer in Go

Merged Nick Thomas requested to merge 1-initial-implementation into master
All threads resolved!
4 files
+ 83
14
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 6
11
@@ -13,18 +13,13 @@ import (
"gitlab.com/gitlab-org/es-git-go/indexer"
)
const (
sha = "9876543210987654321098765432109876543210"
oid = "0123456789012345678901234567890123456789"
)
func readerFunc(data string, err error) func() (io.ReadCloser, error) {
return func() (io.ReadCloser, error) {
return ioutil.NopCloser(strings.NewReader(data)), err
}
}
func validFile(path, content string) *git.File {
func gitFile(path, content string) *git.File {
return &git.File{
Path: path,
Blob: readerFunc(content, nil),
@@ -48,7 +43,7 @@ func validBlob(file *git.File, content, language string) *indexer.Blob {
}
func TestBuildBlob(t *testing.T) {
file := validFile("foo/bar", "foo")
file := gitFile("foo/bar", "foo")
expected := validBlob(file, "foo", "Text")
actual, err := indexer.BuildBlob(file, expected.RepoID, expected.CommitSHA)
@@ -73,7 +68,7 @@ func TestBuildBlob(t *testing.T) {
}
func TestBuildBlobSkipsLargeBlobs(t *testing.T) {
file := validFile("foo/bar", "foo")
file := gitFile("foo/bar", "foo")
file.Size = 1024*1024 + 1
blob, err := indexer.BuildBlob(file, parentID, sha)
@@ -82,7 +77,7 @@ func TestBuildBlobSkipsLargeBlobs(t *testing.T) {
}
func TestBuildBlobSkipsBinaryBlobs(t *testing.T) {
file := validFile("foo/bar", "foo\x00")
file := gitFile("foo/bar", "foo\x00")
blob, err := indexer.BuildBlob(file, parentID, sha)
assert.Equal(t, err, indexer.SkipBinaryBlob)
@@ -90,7 +85,7 @@ func TestBuildBlobSkipsBinaryBlobs(t *testing.T) {
}
func TestBuildBlobDetectsLanguageByFilename(t *testing.T) {
file := validFile("Makefile.am", "foo")
file := gitFile("Makefile.am", "foo")
blob, err := indexer.BuildBlob(file, parentID, sha)
assert.NoError(t, err)
@@ -98,7 +93,7 @@ func TestBuildBlobDetectsLanguageByFilename(t *testing.T) {
}
func TestBuildBlobDetectsLanguageByExtension(t *testing.T) {
file := validFile("foo.rb", "foo")
file := gitFile("foo.rb", "foo")
blob, err := indexer.BuildBlob(file, parentID, sha)
assert.NoError(t, err)
Loading