From 3673a322a68bb9ad4de257120bb4c9da382be2fb Mon Sep 17 00:00:00 2001 From: Deng Ming Date: Tue, 20 Jun 2023 17:18:21 +0800 Subject: [PATCH] closes 5254: %COL% should be a common placeholder --- CHANGELOG.md | 3 ++- client/orm/cmd_utils.go | 5 +++++ client/orm/cmd_utils_test.go | 37 ++++++++++++++++++++++++++++++++++++ server/web/staticfile.go | 4 ++-- 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 client/orm/cmd_utils_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index b1f27115..5cd6dfe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ # developing - [httplib: fix unstable unit test which use the httplib.org](https://github.com/beego/beego/pull/5232) -- [remove adapter package](https://github.com/beego/beego/pull/5239) +- [rft: remove adapter package](https://github.com/beego/beego/pull/5239) - [feat: add write-delete cache mode](https://github.com/beego/beego/pull/5242) - [fix 5255: Check the rows.Err() if rows.Next() is false](https://github.com/beego/beego/pull/5256) +- [orm: missing handling %COL% placeholder](https://github.com/beego/beego/pull/5257) ## ORM refactoring - [introducing internal/models pkg](https://github.com/beego/beego/pull/5238) diff --git a/client/orm/cmd_utils.go b/client/orm/cmd_utils.go index 9c9f1303..b327dd6f 100644 --- a/client/orm/cmd_utils.go +++ b/client/orm/cmd_utils.go @@ -33,6 +33,11 @@ func getColumnTyp(al *alias, fi *models.FieldInfo) (col string) { fieldType := fi.FieldType fieldSize := fi.Size + defer func() { + // handling the placeholder, including %COL% + col = strings.ReplaceAll(col, "%COL%", fi.Column) + }() + checkColumn: switch fieldType { case TypeBooleanField: diff --git a/client/orm/cmd_utils_test.go b/client/orm/cmd_utils_test.go new file mode 100644 index 00000000..d81f47ee --- /dev/null +++ b/client/orm/cmd_utils_test.go @@ -0,0 +1,37 @@ +package orm + +import ( + "github.com/beego/beego/v2/client/orm/internal/models" + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_getColumnTyp(t *testing.T) { + testCases := []struct { + name string + fi *models.FieldInfo + al *alias + + wantCol string + }{ + { + // https://github.com/beego/beego/issues/5254 + name: "issue 5254", + fi: &models.FieldInfo{ + FieldType: TypePositiveIntegerField, + Column: "my_col", + }, + al: &alias{ + DbBaser: newdbBasePostgres(), + }, + wantCol: `bigint CHECK("my_col" >= 0)`, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + col := getColumnTyp(tc.al, tc.fi) + assert.Equal(t, tc.wantCol, col) + }) + } +} diff --git a/server/web/staticfile.go b/server/web/staticfile.go index 7a120f68..e99cd297 100644 --- a/server/web/staticfile.go +++ b/server/web/staticfile.go @@ -39,12 +39,12 @@ func serverStaticRouter(ctx *context.Context) { return } - forbidden, filePath, fileInfo, err := lookupFile(ctx) + fbd, filePath, fileInfo, err := lookupFile(ctx) if err == errNotStaticRequest { return } - if forbidden { + if fbd { exception("403", ctx) return }