Browse Source

Fix UASTExtractor.Consume test

Vadim Markovtsev 7 years ago
parent
commit
70d28dc94e
2 changed files with 15 additions and 7 deletions
  1. 4 2
      uast.go
  2. 11 5
      uast_test.go

+ 4 - 2
uast.go

@@ -204,7 +204,7 @@ func (exr *UASTExtractor) Consume(deps map[string]interface{}) (map[string]inter
 				errs = append(errs, err)
 				return
 			}
-			lang, _ := enry.GetLanguageByContent(change.To.Name, buf.Bytes())
+			lang := enry.GetLanguage(change.To.Name, buf.Bytes())
 			if _, exists := exr.Languages[lang]; !exists {
 				exr.ProcessedFiles[change.To.Name] = UAST_EXTRACTION_SKIPPED
 				return
@@ -285,7 +285,9 @@ func (exr *UASTExtractor) extractTask(data interface{}) interface{} {
 		*task.Errors = append(*task.Errors, errors.New(task.File.Name+": "+err.Error()))
 		return nil
 	}
-	task.Dest[task.File.Hash] = node
+	if node != nil {
+		task.Dest[task.File.Hash] = node
+	}
 	return nil
 }
 

+ 11 - 5
uast_test.go

@@ -114,26 +114,32 @@ func TestUASTExtractorConsume(t *testing.T) {
 	deps["blob_cache"] = cache
 	deps["changes"] = changes
 	res, err := exr.Consume(deps)
+	// Language not enabled
+	assert.Len(t, res["uasts"], 0)
+	assert.Nil(t, err)
+	exr.Languages["Go"] = true
+	res, err = exr.Consume(deps)
 	// No Go driver
-	assert.Nil(t, res)
-	assert.NotNil(t, err)
+	assert.Len(t, res["uasts"], 0)
+	assert.Nil(t, err)
 
+	hash = plumbing.NewHash("5d78f57d732aed825764347ec6f3ab74d50d0619")
 	changes[1] = &object.Change{From: object.ChangeEntry{}, To: object.ChangeEntry{
 		Name: "labours.py",
 		Tree: treeTo,
 		TreeEntry: object.TreeEntry{
 			Name: "labours.py",
 			Mode: 0100644,
-			Hash: plumbing.NewHash("5d78f57d732aed825764347ec6f3ab74d50d0619"),
+			Hash: hash,
 		},
 	},
 	}
 
 	res, err = exr.Consume(deps)
 	assert.Nil(t, err)
-	uasts := res["uasts"].(map[string]*uast.Node)
+	uasts := res["uasts"].(map[plumbing.Hash]*uast.Node)
 	assert.Equal(t, len(uasts), 1)
-	assert.Equal(t, len(uasts["labours.py"].Children), 24)
+	assert.Equal(t, len(uasts[hash].Children), 24)
 }
 
 func fixtureUASTChanges() *UASTChanges {