mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-11 09:51:44 +08:00
Go: add context to lots of interface (#17253)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
@@ -45,7 +45,8 @@ import (
|
||||
func TestTextParser_ParseWithResult_ParaSplit(t *testing.T) {
|
||||
p := NewTextParser()
|
||||
src := []byte("First paragraph.\n\nSecond paragraph.\n\nThird.")
|
||||
res := p.ParseWithResult("doc.txt", src)
|
||||
ctx := t.Context()
|
||||
res := p.ParseWithResult(ctx, "doc.txt", src)
|
||||
if res.Err != nil {
|
||||
t.Fatalf("ParseWithResult: %v", res.Err)
|
||||
}
|
||||
@@ -71,8 +72,9 @@ func TestTextParser_ParseWithResult_ParaSplit(t *testing.T) {
|
||||
// sees a non-nil JSON slice. Mirrors the MarkdownParser convention
|
||||
// at markdown_parser.go:71-76.
|
||||
func TestTextParser_ParseWithResult_Empty(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
p := NewTextParser()
|
||||
res := p.ParseWithResult("empty.txt", []byte{})
|
||||
res := p.ParseWithResult(ctx, "empty.txt", []byte{})
|
||||
if res.Err != nil {
|
||||
t.Fatalf("ParseWithResult: %v", res.Err)
|
||||
}
|
||||
@@ -85,9 +87,10 @@ func TestTextParser_ParseWithResult_Empty(t *testing.T) {
|
||||
// maxItemBytes boundary behaviour. A single paragraph longer
|
||||
// than 8192 bytes is sliced at the nearest line boundary.
|
||||
func TestTextParser_ParseWithResult_LongParagraphSlicing(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
p := NewTextParser()
|
||||
long := strings.Repeat("a", 9000)
|
||||
res := p.ParseWithResult("long.txt", []byte(long))
|
||||
res := p.ParseWithResult(ctx, "long.txt", []byte(long))
|
||||
if res.Err != nil {
|
||||
t.Fatalf("ParseWithResult: %v", res.Err)
|
||||
}
|
||||
@@ -105,9 +108,10 @@ func TestTextParser_ParseWithResult_LongParagraphSlicing(t *testing.T) {
|
||||
// validation rule. Invalid bytes produce an error in the result
|
||||
// (matching the python TxtParser's behaviour).
|
||||
func TestTextParser_ParseWithResult_InvalidUTF8(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
p := NewTextParser()
|
||||
bad := []byte{0xff, 0xfe, 0xfd}
|
||||
res := p.ParseWithResult("bad.txt", bad)
|
||||
res := p.ParseWithResult(ctx, "bad.txt", bad)
|
||||
if res.Err == nil {
|
||||
t.Fatal("want error for invalid UTF-8, got nil")
|
||||
}
|
||||
@@ -117,13 +121,14 @@ func TestTextParser_ParseWithResult_InvalidUTF8(t *testing.T) {
|
||||
// Three block elements (heading, paragraph, list) yield three
|
||||
// items with the python-compatible ck_type vocabulary.
|
||||
func TestHTMLParser_ParseWithResult_BlockSplit(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
p := NewHTMLParser()
|
||||
src := []byte(`<!DOCTYPE html><html><body>
|
||||
<h1>Title</h1>
|
||||
<p>First paragraph.</p>
|
||||
<ul><li>Item one</li></ul>
|
||||
</body></html>`)
|
||||
res := p.ParseWithResult("doc.html", src)
|
||||
res := p.ParseWithResult(ctx, "doc.html", src)
|
||||
if res.Err != nil {
|
||||
t.Fatalf("ParseWithResult: %v", res.Err)
|
||||
}
|
||||
@@ -157,6 +162,7 @@ func TestHTMLParser_ParseWithResult_BlockSplit(t *testing.T) {
|
||||
// rule that <script> / <style> subtrees are skipped entirely so
|
||||
// they don't pollute the downstream chunker input.
|
||||
func TestHTMLParser_ParseWithResult_SkipsScriptAndStyle(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
p := NewHTMLParser()
|
||||
src := []byte(`<html><body>
|
||||
<p>Visible.</p>
|
||||
@@ -164,7 +170,7 @@ func TestHTMLParser_ParseWithResult_SkipsScriptAndStyle(t *testing.T) {
|
||||
<style>body { color: red; }</style>
|
||||
<p>Also visible.</p>
|
||||
</body></html>`)
|
||||
res := p.ParseWithResult("doc.html", src)
|
||||
res := p.ParseWithResult(ctx, "doc.html", src)
|
||||
if res.Err != nil {
|
||||
t.Fatalf("ParseWithResult: %v", res.Err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user