WeKnora deployment source with the reviewed wiki identity, summary and recovery fixes
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFirstBrokenPythonQuoteCatchesNestedASCIIQuotes(t *testing.T) {
|
||||
src := "slides = [\n" +
|
||||
" (\"这不是一个\"大干快上\"的夜晚,而是一个适合整理、沉淀、\", False),\n" +
|
||||
"]\n"
|
||||
line, ok := firstBrokenPythonQuote(src)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, 2, line)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteAllowsKeywordAfterString(t *testing.T) {
|
||||
_, ok := firstBrokenPythonQuote(`x = "hello" if cond else "bye"`)
|
||||
assert.False(t, ok)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteAllowsImplicitConcat(t *testing.T) {
|
||||
_, ok := firstBrokenPythonQuote("x = \"hello\" \"world\"\n")
|
||||
assert.False(t, ok)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteAllowsSingleQuotedChinese(t *testing.T) {
|
||||
_, ok := firstBrokenPythonQuote("x = '这不是一个\"大干快上\"的夜晚'\n")
|
||||
assert.False(t, ok)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteAllowsCornerQuotes(t *testing.T) {
|
||||
_, ok := firstBrokenPythonQuote("x = \"这不是一个「大干快上」的夜晚\"\n")
|
||||
assert.False(t, ok)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteAllowsFString(t *testing.T) {
|
||||
_, ok := firstBrokenPythonQuote("x = f\"hello {name}\"\n")
|
||||
assert.False(t, ok)
|
||||
}
|
||||
|
||||
func TestFirstBrokenPythonQuoteReportsUnclosed(t *testing.T) {
|
||||
line, ok := firstBrokenPythonQuote("x = \"hello\n")
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, 1, line)
|
||||
}
|
||||
|
||||
func TestPythonScriptSyntaxHintOnlyForPy(t *testing.T) {
|
||||
src := "(\"这不是一个\"大干快上\"的夜晚\")\n"
|
||||
assert.Contains(t, pythonScriptSyntaxHint("/workspace/output/x.py", src, ToolEditSandboxFile),
|
||||
ToolEditSandboxFile, "the hint must name the tool that can repair this file")
|
||||
assert.Contains(t, pythonScriptSyntaxHint(testSkillDir+"/run.py", src, ToolEditSkillFile),
|
||||
ToolEditSkillFile, "a skill-tree file is not repairable with edit_sandbox_file")
|
||||
assert.Empty(t, pythonScriptSyntaxHint("/workspace/output/x.md", src, ToolEditSandboxFile))
|
||||
}
|
||||
|
||||
func TestPythonSyntaxErrorHint(t *testing.T) {
|
||||
assert.Empty(t, pythonSyntaxErrorHint("ModuleNotFoundError: docx"))
|
||||
assert.Contains(t, pythonSyntaxErrorHint("SyntaxError: invalid syntax"), "edit_sandbox_file")
|
||||
}
|
||||
Reference in New Issue
Block a user