# HG changeset patch # User Axel Prel <axel.prel@xcg-consulting.fr> # Date 1741601528 -3600 # Mon Mar 10 11:12:08 2025 +0100 # Node ID 507b35aafde69cecbe3862cb6a1ffc80fc864250 # Parent 9b011e15618d090595ee1f2609d47b8ffc6d6862 remove context in NewAPITester diff --git a/HISTORY.rst b/HISTORY.rst --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,6 +1,8 @@ Release history =============== +- apitester: remove context in NewAPITester + - go 1.24.1 - template-varlist: fix error handling diff --git a/restapi/handlers/account-template-update_test.go b/restapi/handlers/account-template-update_test.go --- a/restapi/handlers/account-template-update_test.go +++ b/restapi/handlers/account-template-update_test.go @@ -10,16 +10,11 @@ "orus.io/orus-io/go-orusapi/database" "orus.io/orus-io/rednerd/models" - "orus.io/orus-io/rednerd/testutils" "orus.io/orus-io/rednerd/testutils/apitester" ) func TestAccountTemplateUpdate(t *testing.T) { - log := testutils.GetLogger(t) - ctx := t.Context() - ctx = log.WithContext(ctx) - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) tmpl := models.Template{ Account: "janedoe", Name: "hello", @@ -52,7 +47,7 @@ t.Run("Update body", func(t *testing.T) { defer func() { - _, _ = database.Exec(tester.DB, squirrel.Delete(models.TemplateDBTable), &log) + _, _ = database.Exec(tester.DB, squirrel.Delete(models.TemplateDBTable), &tester.Logger) }() var responseTemplate models.Template @@ -77,7 +72,7 @@ t.Run("Rename", func(t *testing.T) { defer func() { - _, _ = database.Exec(tester.DB, squirrel.Delete(models.TemplateDBTable), &log) + _, _ = database.Exec(tester.DB, squirrel.Delete(models.TemplateDBTable), &tester.Logger) }() var responseTemplate models.Template diff --git a/restapi/handlers/renderlogs_test.go b/restapi/handlers/renderlogs_test.go --- a/restapi/handlers/renderlogs_test.go +++ b/restapi/handlers/renderlogs_test.go @@ -14,9 +14,7 @@ ) func TestRenderLogs(t *testing.T) { - ctx := t.Context() - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() now := time.Now() diff --git a/restapi/handlers/user-get_test.go b/restapi/handlers/user-get_test.go --- a/restapi/handlers/user-get_test.go +++ b/restapi/handlers/user-get_test.go @@ -3,52 +3,15 @@ import ( "net/http" "testing" - "time" - "github.com/rs/zerolog" "github.com/stretchr/testify/require" - "orus.io/orus-io/go-orusapi/database" "orus.io/orus-io/rednerd/models" - "orus.io/orus-io/rednerd/testutils" "orus.io/orus-io/rednerd/testutils/apitester" ) -func AddUserActivity( - t *testing.T, - log zerolog.Logger, - db *database.TestDB, - username string, - qtyCurrentMonth, qtyLastMonth int, -) { - t.Helper() - - renderList := make([]*models.RenderLog, 0, qtyCurrentMonth+qtyLastMonth) - - for range qtyCurrentMonth { - rd := models.NewRenderLog(time.Now(), "text", "mjml", username) - rd.SetDuration(time.Second) - renderList = append(renderList, rd) - } - - for range qtyLastMonth { - rd := models.NewRenderLog(time.Now().AddDate(0, -1, 0), "text", "mjml", username) - rd.SetDuration(time.Second) - renderList = append(renderList, rd) - } - - for _, rlog := range renderList { - _, err := database.Exec(db, database.SQLInsert(rlog), &log) - require.NoError(t, err) - } -} - func TestUserGet(t *testing.T) { - log := testutils.GetLogger(t) - ctx := t.Context() - ctx = log.WithContext(ctx) - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() // login as admin and create a user @@ -58,7 +21,7 @@ // adding some dummy activity for the user JohnDoe qtyCurrentMonth := 4 qtyLastMonth := 2 - AddUserActivity(t, log, tester.DB, "johndoe", + tester.AddUserActivity("johndoe", qtyCurrentMonth, qtyLastMonth) tester.Logout() diff --git a/restapi/handlers/user-list_test.go b/restapi/handlers/user-list_test.go --- a/restapi/handlers/user-list_test.go +++ b/restapi/handlers/user-list_test.go @@ -8,16 +8,11 @@ "github.com/stretchr/testify/require" "orus.io/orus-io/rednerd/models" - "orus.io/orus-io/rednerd/testutils" "orus.io/orus-io/rednerd/testutils/apitester" ) func TestUserList(t *testing.T) { - log := testutils.GetLogger(t) - ctx := t.Context() - ctx = log.WithContext(ctx) - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() // login as admin and create 10 users @@ -27,7 +22,7 @@ john := "johndoe_" + strconv.Itoa(k) tester.CreateUser(john, "password"+strconv.Itoa(k)) // adding some dummy activity for the user JohnDoe - AddUserActivity(t, log, tester.DB, john, 4, 2) + tester.AddUserActivity(john, 4, 2) } tester.Logout() diff --git a/restapi/handlers/user-update_test.go b/restapi/handlers/user-update_test.go --- a/restapi/handlers/user-update_test.go +++ b/restapi/handlers/user-update_test.go @@ -7,16 +7,11 @@ "github.com/stretchr/testify/require" "orus.io/orus-io/rednerd/models" - "orus.io/orus-io/rednerd/testutils" "orus.io/orus-io/rednerd/testutils/apitester" ) func TestUserUpdate(t *testing.T) { - log := testutils.GetLogger(t) - ctx := t.Context() - ctx = log.WithContext(ctx) - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() // login as admin and create a user @@ -27,7 +22,7 @@ // adding some dummy activity for the user JohnDoe qtyCurrentMonth := 4 qtyLastMonth := 2 - AddUserActivity(t, log, tester.DB, "johndoe", + tester.AddUserActivity("johndoe", qtyCurrentMonth, qtyLastMonth) r := tester.APITest("user_get"). diff --git a/tests/auth_test.go b/tests/auth_test.go --- a/tests/auth_test.go +++ b/tests/auth_test.go @@ -15,7 +15,7 @@ func TestAuthentication(t *testing.T) { ctx := t.Context() - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() t.Run("WebToken", func(t *testing.T) { diff --git a/tests/forgot_password_test.go b/tests/forgot_password_test.go --- a/tests/forgot_password_test.go +++ b/tests/forgot_password_test.go @@ -16,7 +16,7 @@ func TestForgotPassword(t *testing.T) { ctx := t.Context() - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() tester.Register(&models.Registration{ diff --git a/tests/register_test.go b/tests/register_test.go --- a/tests/register_test.go +++ b/tests/register_test.go @@ -16,7 +16,7 @@ func TestRegister(t *testing.T) { ctx := t.Context() - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() t.Run("register", func(t *testing.T) { diff --git a/tests/render_test.go b/tests/render_test.go --- a/tests/render_test.go +++ b/tests/render_test.go @@ -13,9 +13,7 @@ ) func TestRender(t *testing.T) { - ctx := t.Context() - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() defer tester.Logout() diff --git a/tests/reset-password_test.go b/tests/reset-password_test.go --- a/tests/reset-password_test.go +++ b/tests/reset-password_test.go @@ -16,7 +16,7 @@ func TestResetPassword(t *testing.T) { ctx := t.Context() - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() tester.Register(&models.Registration{ diff --git a/tests/template_management_test.go b/tests/template_management_test.go --- a/tests/template_management_test.go +++ b/tests/template_management_test.go @@ -50,7 +50,7 @@ ctx := t.Context() ctx = log.WithContext(ctx) - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() defer tester.Logout() diff --git a/tests/user_management_test.go b/tests/user_management_test.go --- a/tests/user_management_test.go +++ b/tests/user_management_test.go @@ -11,9 +11,7 @@ ) func TestUserManagement(t *testing.T) { - ctx := t.Context() - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) tester.Debug() defer tester.Close() diff --git a/tests/varlist_test.go b/tests/varlist_test.go --- a/tests/varlist_test.go +++ b/tests/varlist_test.go @@ -10,9 +10,7 @@ ) func TestVarlist(t *testing.T) { - ctx := t.Context() - - tester := apitester.NewAPITester(ctx, t, nil) + tester := apitester.NewAPITester(t, nil) defer tester.Close() defer tester.Logout() diff --git a/tests/wpd_load_test.go b/tests/wpd_load_test.go --- a/tests/wpd_load_test.go +++ b/tests/wpd_load_test.go @@ -23,17 +23,16 @@ func TestWPDHeavyLoad(t *testing.T) { engineOptions := cmd.NewEngineOptions() - ctx := t.Context() - require.NoError(t, engineOptions.SetupEngineOptions(nil)) engineOptions.SetOptions( "WPD", &wpd.EngineOptions{ WorkerPoolSize: 10, }) - tester := apitester.NewAPITester(ctx, t, &engineOptions, func(s *restapi.Server) { - s.WriteTimeout = time.Minute * 5 - }) + tester := apitester.NewAPITester( + t, &engineOptions, func(s *restapi.Server) { + s.WriteTimeout = time.Minute * 5 + }) defer tester.Close() defer tester.Logout() diff --git a/testutils/apitester/apitester.go b/testutils/apitester/apitester.go --- a/testutils/apitester/apitester.go +++ b/testutils/apitester/apitester.go @@ -55,15 +55,14 @@ // NewAPITester setup a APITester. // false positive on thelper that I can't figure out. // it should allow t *testing.T param to be second here but weirdly does not. -func NewAPITester( //nolint:thelper - ctx context.Context, +func NewAPITester( t *testing.T, engineOptions *cmd.EngineOptions, serverOptions ...ServerOption, ) *APITester { t.Helper() - testerCtx, cancel := context.WithCancel(ctx) + testerCtx, cancel := context.WithCancel(t.Context()) log := testutils.GetLogger(t) testLog := testutils.NewTestLogger(t) diff --git a/testutils/apitester/apitester_user_management.go b/testutils/apitester/apitester_user_management.go --- a/testutils/apitester/apitester_user_management.go +++ b/testutils/apitester/apitester_user_management.go @@ -2,8 +2,10 @@ import ( "net/http" + "time" "github.com/stretchr/testify/require" + "orus.io/orus-io/go-orusapi/database" "orus.io/orus-io/rednerd/models" ) @@ -66,3 +68,27 @@ End() r.JSON(users) } + +func (tester *APITester) AddUserActivity( + username string, + qtyCurrentMonth, qtyLastMonth int, +) { + renderList := make([]*models.RenderLog, 0, qtyCurrentMonth+qtyLastMonth) + + for range qtyCurrentMonth { + rd := models.NewRenderLog(time.Now(), "text", "mjml", username) + rd.SetDuration(time.Second) + renderList = append(renderList, rd) + } + + for range qtyLastMonth { + rd := models.NewRenderLog(time.Now().AddDate(0, -1, 0), "text", "mjml", username) + rd.SetDuration(time.Second) + renderList = append(renderList, rd) + } + + for _, rlog := range renderList { + _, err := database.Exec(tester.DB, database.SQLInsert(rlog), &tester.Logger) + require.NoError(tester.t, err) + } +}