feat: support v3 format debugtalk.py when executing hrp run/boom

This commit is contained in:
xucong053
2022-05-27 11:20:21 +08:00
parent c2bcbfd07f
commit f984e002dc
32 changed files with 1386 additions and 67 deletions

View File

@@ -1,46 +0,0 @@
package examples
import (
"fmt"
)
import "os"
func SumTwoInt(a, b int) int {
return a + b
}
func SumInts(args ...int) int {
var sum int
for _, arg := range args {
sum += arg
}
return sum
}
func Sum(args ...interface{}) (interface{}, error) {
var sum float64
for _, arg := range args {
switch v := arg.(type) {
case int:
sum += float64(v)
case float64:
sum += v
default:
return nil, fmt.Errorf("unexpected type: %T", arg)
}
}
return sum, nil
}
func SetupHookExample(args string) string {
return fmt.Sprintf("step name: %v, setup...", args)
}
func TeardownHookExample(args string) string {
return fmt.Sprintf("step name: %v, teardown...", args)
}
func init() {
_, _ = os.Getwd()
}

View File

@@ -1,53 +0,0 @@
import logging
import time
from typing import List
def sleep(n_secs):
time.sleep(n_secs)
def sum(*args):
result = 0
for arg in args:
result += arg
return result
def sum_ints(*args: List[int]) -> int:
result = 0
for arg in args:
result += arg
return result
def sum_two_int(a: int, b: int) -> int:
return a + b
def sum_two_string(a: str, b: str) -> str:
return a + b
def sum_strings(*args: List[str]) -> str:
result = ""
for arg in args:
result += arg
return result
def concatenate(*args: List[str]) -> str:
result = ""
for arg in args:
result += str(arg)
return result
def setup_hook_example(name):
logging.warning("setup_hook_example")
return f"setup_hook_example: {name}"
def teardown_hook_example(name):
logging.warning("teardown_hook_example")
return f"teardown_hook_example: {name}"

View File

@@ -62,7 +62,7 @@ func (t *TemplateContent) parseGoContent(path string) error {
originalContent := string(content)
// parse imports
importSlice := t.Regexps.Import.FindAllStringSubmatch(originalContent, -1)
importSlice := t.Regexps.Imports.FindAllStringSubmatch(originalContent, -1)
if len(importSlice) != 0 {
imports := strings.Replace(importSlice[0][1], "\t", "", -1)
for _, elem := range strings.Split(imports, "\n") {
@@ -70,7 +70,7 @@ func (t *TemplateContent) parseGoContent(path string) error {
}
}
// parse import
importSlice = t.Regexps.Imports.FindAllStringSubmatch(originalContent, -1)
importSlice = t.Regexps.Import.FindAllStringSubmatch(originalContent, -1)
if len(importSlice) != 0 {
for _, elem := range importSlice {
t.Imports = append(t.Imports, strings.TrimSpace(elem[1]))

View File

@@ -1,29 +1,51 @@
package build
import (
"github.com/httprunner/httprunner/v4/hrp/internal/builtin"
"regexp"
"testing"
"github.com/stretchr/testify/assert"
)
func TestRun(t *testing.T) {
err := Run("examples/debugtalk_no_funppy.py", "")
err := Run("../../../examples/demo-with-no-fungo/plugin/debugtalk.go", "")
if !assert.Nil(t, err) {
t.Fatal()
}
err = Run("examples/debugtalk_no_fungo.go", "")
err = Run("../../../examples/demo-with-no-funppy/debugtalk.py", "")
if !assert.Nil(t, err) {
t.Fatal()
}
err = Run("examples/debugtalk_no_funppy.py", "./debugtalk.py")
err = Run("../../../examples/demo-with-no-fungo/plugin/debugtalk.go", "./debugtalk_gen.bin")
if !assert.Nil(t, err) {
t.Fatal()
}
err = Run("examples/debugtalk_no_fungo.go", "./debugtalk_gen.bin")
err = Run("../../../examples/demo-with-no-funppy/debugtalk.py", "./debugtalk_gen.py")
if !assert.Nil(t, err) {
t.Fatal()
}
contentBytes, err := builtin.ReadFile("./debugtalk_gen.py")
if !assert.Nil(t, err) {
t.Fatal()
}
content := string(contentBytes)
if !assert.Contains(t, content, "import funppy") {
t.Fatal()
}
if !assert.Contains(t, content, "funppy.register") {
t.Fatal()
}
reg, _ := regexp.Compile(`funppy\.register`)
matchedSlice := reg.FindAllStringSubmatch(content, -1)
if !assert.Len(t, matchedSlice, 10) {
t.Fatal()
}
}