AST: тесты вынесены во вложенный пакет, чтобы не было циклической зависимости

Этот коммит содержится в:
Softonik 2025-06-06 15:52:32 +03:00
родитель 56522e757a
коммит 59344caf33
5 изменённых файлов: 21 добавлений и 13 удалений

Просмотреть файл

@ -5,6 +5,7 @@ import (
"path/filepath" "path/filepath"
"git.golang1.ru/softonik/godog" "git.golang1.ru/softonik/godog"
"git.golang1.ru/softonik/godog/pkg/formatters/ast"
"git.golang1.ru/softonik/godog/pkg/lib" "git.golang1.ru/softonik/godog/pkg/lib"
. "git.golang1.ru/softonik/godog_and_gomega" . "git.golang1.ru/softonik/godog_and_gomega"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
@ -58,7 +59,7 @@ func файл(fname string, content *godog.DocString) {
} }
func добавляетсяШагСФункциейС(шаг, func_name, params string) { func добавляетсяШагСФункциейС(шаг, func_name, params string) {
err := ДобавитьШаг("`"+шаг+"`", func_name, params) err := ast.ДобавитьШаг("`"+шаг+"`", func_name, params)
Ok(err) Ok(err)
} }
@ -68,7 +69,7 @@ func файлДолженСодержать(fname string, content *godog.DocStri
Ω(cont).To(Be(content.Content)) Ω(cont).To(Be(content.Content))
pkg, err := получитьИмяGoПакетаФайла(fname) pkg, err := lib.ПолучитьИмяGoПакетаФайла(fname)
Ok(err) Ok(err)
Ω(pkg).To(Be("mypkg")) Ω(pkg).To(Be("mypkg"))
} }

Просмотреть файл

Просмотреть файл

@ -3,13 +3,13 @@ package ast
import ( import (
"fmt" "fmt"
"go/ast" "go/ast"
"go/parser"
"go/token"
"os" "os"
"path/filepath" "path/filepath"
"time" "time"
"errors" "errors"
"git.golang1.ru/softonik/godog/pkg/lib"
) )
const ( const (
@ -25,7 +25,7 @@ func получитьИмяGoПакетаВЭтойДире() (pkg_name string,
} }
if !info.IsDir() && filepath.Ext(path) == ".go" { if !info.IsDir() && filepath.Ext(path) == ".go" {
pkg, err := получитьИмяGoПакетаФайла(path) pkg, err := lib.ПолучитьИмяGoПакетаФайла(path)
if err != nil { if err != nil {
return err return err
} }
@ -38,14 +38,6 @@ func получитьИмяGoПакетаВЭтойДире() (pkg_name string,
return return
} }
func получитьИмяGoПакетаФайла(fname string) (string, error) {
fset := token.NewFileSet()
node, err := parser.ParseFile(fset, fname, nil, parser.AllErrors)
if err != nil {
return "", err
}
return node.Name.Name, nil
}
func переименоватьФайлСоВременем(fname string) error { func переименоватьФайлСоВременем(fname string) error {
os.MkdirAll(BACKUP_DIR, 0755) os.MkdirAll(BACKUP_DIR, 0755)

15
pkg/lib/helpers.go Обычный файл
Просмотреть файл

@ -0,0 +1,15 @@
package lib
import (
"go/parser"
"go/token"
)
func ПолучитьИмяGoПакетаФайла(fname string) (string, error) {
fset := token.NewFileSet()
node, err := parser.ParseFile(fset, fname, nil, parser.AllErrors)
if err != nil {
return "", err
}
return node.Name.Name, nil
}