anqiansong 3 жил өмнө
parent
commit
9a724fe907

+ 9 - 7
tools/goctl/api/parser/g4/test/apiparser_test.go

@@ -8,7 +8,9 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+
 	"github.com/tal-tech/go-zero/tools/goctl/api/parser/g4/ast"
+	"github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 var (
@@ -118,7 +120,7 @@ func TestApiParser(t *testing.T) {
 	})
 
 	t.Run("nestedImport", func(t *testing.T) {
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err := ioutil.WriteFile(file, []byte(nestedAPIImport), os.ModePerm)
 		if err != nil {
 			return
@@ -148,7 +150,7 @@ func TestApiParser(t *testing.T) {
 	})
 
 	t.Run("ambiguousSyntax", func(t *testing.T) {
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err := ioutil.WriteFile(file, []byte(ambiguousSyntax), os.ModePerm)
 		if err != nil {
 			return
@@ -162,7 +164,7 @@ func TestApiParser(t *testing.T) {
 	})
 
 	t.Run("ambiguousSyntax", func(t *testing.T) {
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err := ioutil.WriteFile(file, []byte(ambiguousSyntax), os.ModePerm)
 		if err != nil {
 			return
@@ -176,7 +178,7 @@ func TestApiParser(t *testing.T) {
 	})
 
 	t.Run("ambiguousService", func(t *testing.T) {
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err := ioutil.WriteFile(file, []byte(ambiguousService), os.ModePerm)
 		if err != nil {
 			return
@@ -206,7 +208,7 @@ func TestApiParser(t *testing.T) {
 		`)
 		assert.Error(t, err)
 
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err = ioutil.WriteFile(file, []byte(duplicateHandler), os.ModePerm)
 		if err != nil {
 			return
@@ -235,7 +237,7 @@ func TestApiParser(t *testing.T) {
 		`)
 		assert.Error(t, err)
 
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err = ioutil.WriteFile(file, []byte(duplicateRoute), os.ModePerm)
 		if err != nil {
 			return
@@ -259,7 +261,7 @@ func TestApiParser(t *testing.T) {
 		`)
 		assert.Error(t, err)
 
-		file := filepath.Join(t.TempDir(), "foo.api")
+		file := filepath.Join(util.MustTempDir(), "foo.api")
 		err = ioutil.WriteFile(file, []byte(duplicateType), os.ModePerm)
 		if err != nil {
 			return

+ 1 - 1
tools/goctl/internal/version/version.go

@@ -48,7 +48,7 @@ func convertVersion(version string) (versionNumber float64, tag string) {
 		}
 		return '_'
 	}, splits[0])
-	numberStr = strings.ReplaceAll(numberStr, "_", "")
+	numberStr = strings.Replace(numberStr, "_", "", -1)
 	versionNumber, _ = json.Number(numberStr).Float64()
 	return
 }

+ 3 - 1
tools/goctl/model/mongo/generate/generate_test.go

@@ -6,7 +6,9 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+
 	"github.com/tal-tech/go-zero/tools/goctl/config"
+	"github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 var testTypes = `
@@ -18,7 +20,7 @@ func TestDo(t *testing.T) {
 	cfg, err := config.NewConfig(config.DefaultFormat)
 	assert.Nil(t, err)
 
-	tempDir := t.TempDir()
+	tempDir := util.MustTempDir()
 	typesfile := filepath.Join(tempDir, "types.go")
 	err = ioutil.WriteFile(typesfile, []byte(testTypes), 0o666)
 	assert.Nil(t, err)

+ 6 - 5
tools/goctl/model/sql/command/command_test.go

@@ -7,6 +7,7 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+
 	"github.com/tal-tech/go-zero/tools/goctl/config"
 	"github.com/tal-tech/go-zero/tools/goctl/model/sql/gen"
 	"github.com/tal-tech/go-zero/tools/goctl/util"
@@ -23,12 +24,12 @@ func TestFromDDl(t *testing.T) {
 	err := gen.Clean()
 	assert.Nil(t, err)
 
-	err = fromDDL("./user.sql", t.TempDir(), cfg, true, false, "go_zero")
+	err = fromDDL("./user.sql", util.MustTempDir(), cfg, true, false, "go_zero")
 	assert.Equal(t, errNotMatched, err)
 
 	// case dir is not exists
-	unknownDir := filepath.Join(t.TempDir(), "test", "user.sql")
-	err = fromDDL(unknownDir, t.TempDir(), cfg, true, false, "go_zero")
+	unknownDir := filepath.Join(util.MustTempDir(), "test", "user.sql")
+	err = fromDDL(unknownDir, util.MustTempDir(), cfg, true, false, "go_zero")
 	assert.True(t, func() bool {
 		switch err.(type) {
 		case *os.PathError:
@@ -39,12 +40,12 @@ func TestFromDDl(t *testing.T) {
 	}())
 
 	// case empty src
-	err = fromDDL("", t.TempDir(), cfg, true, false, "go_zero")
+	err = fromDDL("", util.MustTempDir(), cfg, true, false, "go_zero")
 	if err != nil {
 		assert.Equal(t, "expected path or path globbing patterns, but nothing found", err.Error())
 	}
 
-	tempDir := filepath.Join(t.TempDir(), "test")
+	tempDir := filepath.Join(util.MustTempDir(), "test")
 	err = util.MkdirIfNotExist(tempDir)
 	if err != nil {
 		return

+ 5 - 3
tools/goctl/model/sql/gen/gen_test.go

@@ -10,10 +10,12 @@ import (
 	"time"
 
 	"github.com/stretchr/testify/assert"
+
 	"github.com/tal-tech/go-zero/core/logx"
 	"github.com/tal-tech/go-zero/core/stringx"
 	"github.com/tal-tech/go-zero/tools/goctl/config"
 	"github.com/tal-tech/go-zero/tools/goctl/model/sql/builderx"
+	"github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 var source = "CREATE TABLE `test_user` (\n  `id` bigint NOT NULL AUTO_INCREMENT,\n  `mobile` varchar(255) COLLATE utf8mb4_bin NOT NULL,\n  `class` bigint NOT NULL,\n  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,\n  `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `mobile_unique` (`mobile`),\n  UNIQUE KEY `class_name_unique` (`class`,`name`),\n  KEY `create_index` (`create_time`),\n  KEY `name_index` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;"
@@ -22,11 +24,11 @@ func TestCacheModel(t *testing.T) {
 	logx.Disable()
 	_ = Clean()
 
-	sqlFile := filepath.Join(t.TempDir(), "tmp.sql")
+	sqlFile := filepath.Join(util.MustTempDir(), "tmp.sql")
 	err := ioutil.WriteFile(sqlFile, []byte(source), 0o777)
 	assert.Nil(t, err)
 
-	dir := filepath.Join(t.TempDir(), "./testmodel")
+	dir := filepath.Join(util.MustTempDir(), "./testmodel")
 	cacheDir := filepath.Join(dir, "cache")
 	noCacheDir := filepath.Join(dir, "nocache")
 	g, err := NewDefaultGenerator(cacheDir, &config.Config{
@@ -57,7 +59,7 @@ func TestNamingModel(t *testing.T) {
 	logx.Disable()
 	_ = Clean()
 
-	sqlFile := filepath.Join(t.TempDir(), "tmp.sql")
+	sqlFile := filepath.Join(util.MustTempDir(), "tmp.sql")
 	err := ioutil.WriteFile(sqlFile, []byte(source), 0o777)
 	assert.Nil(t, err)
 

+ 5 - 3
tools/goctl/model/sql/parser/parser_test.go

@@ -6,12 +6,14 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+
 	"github.com/tal-tech/go-zero/tools/goctl/model/sql/model"
 	"github.com/tal-tech/go-zero/tools/goctl/model/sql/util"
+	ctlutil "github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 func TestParsePlainText(t *testing.T) {
-	sqlFile := filepath.Join(t.TempDir(), "tmp.sql")
+	sqlFile := filepath.Join(ctlutil.MustTempDir(), "tmp.sql")
 	err := ioutil.WriteFile(sqlFile, []byte("plain text"), 0o777)
 	assert.Nil(t, err)
 
@@ -20,7 +22,7 @@ func TestParsePlainText(t *testing.T) {
 }
 
 func TestParseSelect(t *testing.T) {
-	sqlFile := filepath.Join(t.TempDir(), "tmp.sql")
+	sqlFile := filepath.Join(ctlutil.MustTempDir(), "tmp.sql")
 	err := ioutil.WriteFile(sqlFile, []byte("select * from user"), 0o777)
 	assert.Nil(t, err)
 
@@ -30,7 +32,7 @@ func TestParseSelect(t *testing.T) {
 }
 
 func TestParseCreateTable(t *testing.T) {
-	sqlFile := filepath.Join(t.TempDir(), "tmp.sql")
+	sqlFile := filepath.Join(ctlutil.MustTempDir(), "tmp.sql")
 	err := ioutil.WriteFile(sqlFile, []byte("CREATE TABLE `test_user` (\n  `id` bigint NOT NULL AUTO_INCREMENT,\n  `mobile` varchar(255) COLLATE utf8mb4_bin NOT NULL comment '手\\t机  号',\n  `class` bigint NOT NULL comment '班级',\n  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL comment '姓\n  名',\n  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP comment '创建\\r时间',\n  `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `mobile_unique` (`mobile`),\n  UNIQUE KEY `class_name_unique` (`class`,`name`),\n  KEY `create_index` (`create_time`),\n  KEY `name_index` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;"), 0o777)
 	assert.Nil(t, err)
 

+ 2 - 1
tools/goctl/rpc/generator/gen_test.go

@@ -12,6 +12,7 @@ import (
 	"github.com/tal-tech/go-zero/core/stringx"
 	conf "github.com/tal-tech/go-zero/tools/goctl/config"
 	"github.com/tal-tech/go-zero/tools/goctl/rpc/execx"
+	"github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 var cfg = &conf.Config{
@@ -57,7 +58,7 @@ func TestRpcGenerate(t *testing.T) {
 
 	// case go mod
 	t.Run("GOMOD", func(t *testing.T) {
-		workDir := t.TempDir()
+		workDir := util.MustTempDir()
 		name := filepath.Base(workDir)
 		_, err = execx.Run("go mod init "+name, workDir)
 		if err != nil {

+ 1 - 1
tools/goctl/rpc/generator/prototmpl.go

@@ -25,7 +25,7 @@ service {{.serviceName}} {
 }
 `
 
-// ProtoTmpl returns an sample of a proto file
+// ProtoTmpl returns a sample of a proto file
 func ProtoTmpl(out string) error {
 	protoFilename := filepath.Base(out)
 	serviceName := stringx.From(strings.TrimSuffix(protoFilename, filepath.Ext(protoFilename)))

+ 4 - 2
tools/goctl/rpc/generator/prototmpl_test.go

@@ -5,16 +5,18 @@ import (
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+
+	"github.com/tal-tech/go-zero/tools/goctl/util"
 )
 
 func TestProtoTmpl(t *testing.T) {
 	_ = Clean()
 	// exists dir
-	err := ProtoTmpl(t.TempDir())
+	err := ProtoTmpl(util.MustTempDir())
 	assert.Nil(t, err)
 
 	// not exist dir
-	dir := filepath.Join(t.TempDir(), "test")
+	dir := filepath.Join(util.MustTempDir(), "test")
 	err = ProtoTmpl(dir)
 	assert.Nil(t, err)
 }

+ 11 - 0
tools/goctl/util/file.go

@@ -4,6 +4,7 @@ import (
 	"bufio"
 	"fmt"
 	"io/ioutil"
+	"log"
 	"os"
 	"path/filepath"
 	"strings"
@@ -180,3 +181,13 @@ func createTemplate(file, content string, force bool) error {
 	_, err = f.WriteString(content)
 	return err
 }
+
+// MustTempDir creates a temporary directory
+func MustTempDir() string {
+	dir, err := ioutil.TempDir("", "")
+	if err != nil {
+		log.Fatalln(err)
+	}
+
+	return dir
+}

+ 1 - 1
tools/goctl/util/stringx/string.go

@@ -39,7 +39,7 @@ func (s String) Upper() string {
 
 // ReplaceAll calls the strings.ReplaceAll
 func (s String) ReplaceAll(old, new string) string {
-	return strings.ReplaceAll(s.source, old, new)
+	return strings.Replace(s.source, old, new, -1)
 }
 
 // Source returns the source string value