mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-25 07:43:36 +01:00
c6f5029708
When creating attachments (issue, release, repo) the file size (being part of the multipart file header) is passed through the chain of creating an attachment to ensure the MinIO client can stream the file directly instead of having to read it to memory completely at first. Fixes #23393 Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package attachment
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"code.gitea.io/gitea/models/db"
|
|
repo_model "code.gitea.io/gitea/models/repo"
|
|
"code.gitea.io/gitea/models/unittest"
|
|
user_model "code.gitea.io/gitea/models/user"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
unittest.MainTest(m, &unittest.TestOptions{
|
|
GiteaRootPath: filepath.Join("..", ".."),
|
|
})
|
|
}
|
|
|
|
func TestUploadAttachment(t *testing.T) {
|
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
|
|
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
|
|
|
fPath := "./attachment_test.go"
|
|
f, err := os.Open(fPath)
|
|
assert.NoError(t, err)
|
|
defer f.Close()
|
|
|
|
attach, err := NewAttachment(&repo_model.Attachment{
|
|
RepoID: 1,
|
|
UploaderID: user.ID,
|
|
Name: filepath.Base(fPath),
|
|
}, f, -1)
|
|
assert.NoError(t, err)
|
|
|
|
attachment, err := repo_model.GetAttachmentByUUID(db.DefaultContext, attach.UUID)
|
|
assert.NoError(t, err)
|
|
assert.EqualValues(t, user.ID, attachment.UploaderID)
|
|
assert.Equal(t, int64(0), attachment.DownloadCount)
|
|
}
|