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.

package_test.go 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package packages_test
  4. import (
  5. "path/filepath"
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. packages_model "code.gitea.io/gitea/models/packages"
  9. "code.gitea.io/gitea/models/unittest"
  10. user_model "code.gitea.io/gitea/models/user"
  11. _ "code.gitea.io/gitea/models"
  12. "github.com/stretchr/testify/assert"
  13. )
  14. func TestMain(m *testing.M) {
  15. unittest.MainTest(m, &unittest.TestOptions{
  16. GiteaRootPath: filepath.Join("..", ".."),
  17. })
  18. }
  19. func TestHasOwnerPackages(t *testing.T) {
  20. assert.NoError(t, unittest.PrepareTestDatabase())
  21. owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
  22. p, err := packages_model.TryInsertPackage(db.DefaultContext, &packages_model.Package{
  23. OwnerID: owner.ID,
  24. LowerName: "package",
  25. })
  26. assert.NotNil(t, p)
  27. assert.NoError(t, err)
  28. // A package without package versions gets automatically cleaned up and should return false
  29. has, err := packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
  30. assert.False(t, has)
  31. assert.NoError(t, err)
  32. pv, err := packages_model.GetOrInsertVersion(db.DefaultContext, &packages_model.PackageVersion{
  33. PackageID: p.ID,
  34. LowerVersion: "internal",
  35. IsInternal: true,
  36. })
  37. assert.NotNil(t, pv)
  38. assert.NoError(t, err)
  39. // A package with an internal package version gets automatically cleaned up and should return false
  40. has, err = packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
  41. assert.False(t, has)
  42. assert.NoError(t, err)
  43. pv, err = packages_model.GetOrInsertVersion(db.DefaultContext, &packages_model.PackageVersion{
  44. PackageID: p.ID,
  45. LowerVersion: "normal",
  46. IsInternal: false,
  47. })
  48. assert.NotNil(t, pv)
  49. assert.NoError(t, err)
  50. // A package with a normal package version should return true
  51. has, err = packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
  52. assert.True(t, has)
  53. assert.NoError(t, err)
  54. }