1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
// Copyright 2023 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package gitea
import (
"bytes"
"fmt"
"log"
"net/http"
"os"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
// create an org with a single package for testing purposes
func createTestPackage(t *testing.T, c *Client) error {
_, _ = c.DeletePackage("PackageOrg", "generic", "MyPackage", "v1")
_, _ = c.DeleteOrg("PackageOrg")
_, _, _ = c.CreateOrg(CreateOrgOption{Name: "PackageOrg"})
client := &http.Client{
Timeout: time.Second * 10,
}
reader := bytes.NewReader([]byte("Hello world!"))
url := fmt.Sprintf("%s/api/packages/PackageOrg/generic/MyPackage/v1/file1.txt", os.Getenv("GITEA_SDK_TEST_URL"))
req, err := http.NewRequest(http.MethodPut, url, reader)
if err != nil {
log.Println(err)
return err
}
req.SetBasicAuth(os.Getenv("GITEA_SDK_TEST_USERNAME"), os.Getenv("GITEA_SDK_TEST_PASSWORD"))
response, err := client.Do(req)
if err != nil {
return err
}
defer response.Body.Close()
return nil
}
func TestListPackages(t *testing.T) {
log.Println("== TestListPackages ==")
c := newTestClient()
err := createTestPackage(t, c)
assert.NoError(t, err)
packagesList, _, err := c.ListPackages("PackageOrg", ListPackagesOptions{
ListOptions{
Page: 1,
PageSize: 1000,
},
})
assert.NoError(t, err)
assert.Len(t, packagesList, 1)
}
func TestGetPackage(t *testing.T) {
log.Println("== TestGetPackage ==")
c := newTestClient()
err := createTestPackage(t, c)
assert.NoError(t, err)
pkg, _, err := c.GetPackage("PackageOrg", "generic", "MyPackage", "v1")
assert.NoError(t, err)
assert.NotNil(t, pkg)
assert.True(t, pkg.Name == "MyPackage")
assert.True(t, pkg.Version == "v1")
assert.NotEmpty(t, pkg.CreatedAt)
}
func TestDeletePackage(t *testing.T) {
log.Println("== TestDeletePackage ==")
c := newTestClient()
err := createTestPackage(t, c)
assert.NoError(t, err)
_, err = c.DeletePackage("PackageOrg", "generic", "MyPackage", "v1")
assert.NoError(t, err)
// no packages should be listed following deletion
packagesList, _, err := c.ListPackages("PackageOrg", ListPackagesOptions{
ListOptions{
Page: 1,
PageSize: 1000,
},
})
assert.NoError(t, err)
assert.Len(t, packagesList, 0)
}
func TestListPackageFiles(t *testing.T) {
log.Println("== TestListPackageFiles ==")
c := newTestClient()
err := createTestPackage(t, c)
assert.NoError(t, err)
packageFiles, _, err := c.ListPackageFiles("PackageOrg", "generic", "MyPackage", "v1")
assert.NoError(t, err)
assert.Len(t, packageFiles, 1)
assert.True(t, packageFiles[0].Name == "file1.txt")
}
|