Files
zot/pkg/test/image-utils/write_test.go
T
Luca Muscariello 2402296e9a fix: migrate to Go module v2 for proper semantic versioning (#3462)
* fix: migrate to Go module v2 for proper semantic versioning

This change updates the module path from 'zotregistry.dev/zot' to
'zotregistry.dev/zot/v2' to comply with Go's semantic versioning rules.

According to Go's module versioning requirements, major version v2+
must include the major version in the module path. The current
module path 'zotregistry.dev/zot' only supports v0.x.x and v1.x.x
versions, making existing v2.x.x tags (like v2.1.8) unusable.

Changes:
- Updated go.mod module path to zotregistry.dev/zot/v2
- Updated all internal import paths across 280+ Go source files
- Updated configuration files (golangcilint.yaml, gqlgen.yml)
- Updated README.md Go reference badge

This fix enables proper use of existing v2.x.x Git tags and allows
external packages to import zot v2+ versions without compatibility
errors.

Resolves: Go module import compatibility for v2+ versions
Fixes: #3071
Signed-off-by: Luca Muscariello <muscariello@ieee.org>

* fix: regenerate GraphQL files with updated v2 import paths

The gqlgen tool needs to regenerate the GraphQL schema files after
the module path change to use the new v2 imports.

Signed-off-by: Luca Muscariello <muscariello@ieee.org>

---------

Signed-off-by: Luca Muscariello <muscariello@ieee.org>
2025-10-16 22:43:47 -07:00

79 lines
1.8 KiB
Go

package image_test
import (
"errors"
"io"
"testing"
godigest "github.com/opencontainers/go-digest"
. "github.com/smartystreets/goconvey/convey"
"zotregistry.dev/zot/v2/pkg/storage"
. "zotregistry.dev/zot/v2/pkg/test/image-utils"
"zotregistry.dev/zot/v2/pkg/test/mocks"
)
var ErrTestError = errors.New("ErrTestError")
func TestWriteImageToFileSystem(t *testing.T) {
Convey("WriteImageToFileSystem errors", t, func() {
err := WriteImageToFileSystem(Image{}, "repo", "dig", storage.StoreController{
DefaultStore: mocks.MockedImageStore{
InitRepoFn: func(name string) error {
return ErrTestError
},
},
})
So(err, ShouldNotBeNil)
err = WriteImageToFileSystem(
Image{Layers: [][]byte{[]byte("testLayer")}},
"repo",
"tag",
storage.StoreController{
DefaultStore: mocks.MockedImageStore{
FullBlobUploadFn: func(repo string, body io.Reader, digest godigest.Digest,
) (string, int64, error) {
return "", 0, ErrTestError
},
},
})
So(err, ShouldNotBeNil)
count := 0
err = WriteImageToFileSystem(
Image{Layers: [][]byte{[]byte("testLayer")}},
"repo",
"tag",
storage.StoreController{
DefaultStore: mocks.MockedImageStore{
FullBlobUploadFn: func(repo string, body io.Reader, digest godigest.Digest,
) (string, int64, error) {
if count == 0 {
count++
return "", 0, nil
}
return "", 0, ErrTestError
},
},
})
So(err, ShouldNotBeNil)
err = WriteImageToFileSystem(
Image{Layers: [][]byte{[]byte("testLayer")}},
"repo",
"tag",
storage.StoreController{
DefaultStore: mocks.MockedImageStore{
PutImageManifestFn: func(repo, reference, mediaType string, body []byte,
) (godigest.Digest, godigest.Digest, error) {
return "", "", ErrTestError
},
},
})
So(err, ShouldNotBeNil)
})
}