You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

context_test.go 809B

1234567891011121314151617181920212223242526272829303132
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package db_test
  4. import (
  5. "context"
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/models/unittest"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestInTransaction(t *testing.T) {
  12. assert.NoError(t, unittest.PrepareTestDatabase())
  13. assert.False(t, db.InTransaction(db.DefaultContext))
  14. assert.NoError(t, db.WithTx(db.DefaultContext, func(ctx context.Context) error {
  15. assert.True(t, db.InTransaction(ctx))
  16. return nil
  17. }))
  18. ctx, committer, err := db.TxContext(db.DefaultContext)
  19. assert.NoError(t, err)
  20. defer committer.Close()
  21. assert.True(t, db.InTransaction(ctx))
  22. assert.Error(t, db.WithTx(ctx, func(ctx context.Context) error {
  23. assert.True(t, db.InTransaction(ctx))
  24. return nil
  25. }))
  26. }