debian-forge-cli/cmd/image-builder/export_test.go
Tomáš Hozza 8040fee0d4 cmd/describe: test that all images can be described
Add an unit test to verify that the `describe` command can describe all
image types. I've recently ran into issue when describing ostree-based
and `*-simplified-installer` image types.

Add new dependecy for working with YAML - sigs.k8s.io/yaml.

This is what we will probably converge to, since our currently used YAML
library is unmaintained.

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2025-06-23 18:31:27 +00:00

85 lines
1.9 KiB
Go

package main
import (
"fmt"
"io"
"os"
"github.com/osbuild/images/pkg/cloud"
"github.com/osbuild/images/pkg/cloud/awscloud"
"github.com/osbuild/images/pkg/manifestgen"
"github.com/osbuild/images/pkg/reporegistry"
)
var (
GetOneImage = getOneImage
GetAllImages = getAllImages
Run = run
FindDistro = findDistro
DescribeImage = describeImage
ProgressFromCmd = progressFromCmd
BasenameFor = basenameFor
)
type DescribeImgYAML describeImgYAML
func MockOsArgs(new []string) (restore func()) {
saved := os.Args
os.Args = append([]string{"argv0"}, new...)
return func() {
os.Args = saved
}
}
func MockOsStdout(new io.Writer) (restore func()) {
saved := osStdout
osStdout = new
return func() {
osStdout = saved
}
}
func MockOsStderr(new io.Writer) (restore func()) {
saved := osStderr
osStderr = new
return func() {
osStderr = saved
}
}
func MockNewRepoRegistry(f func() (*reporegistry.RepoRegistry, error)) (restore func()) {
saved := newRepoRegistry
newRepoRegistry = func(dataDir string, extraRepos []string) (*reporegistry.RepoRegistry, error) {
if dataDir != "" {
panic(fmt.Sprintf("cannot use custom dataDir %v in mock", dataDir))
}
return f()
}
return func() {
newRepoRegistry = saved
}
}
func MockDistroGetHostDistroName(f func() (string, error)) (restore func()) {
saved := distroGetHostDistroName
distroGetHostDistroName = f
return func() {
distroGetHostDistroName = saved
}
}
func MockAwscloudNewUploader(f func(string, string, string, *awscloud.UploaderOptions) (cloud.Uploader, error)) (restore func()) {
saved := awscloudNewUploader
awscloudNewUploader = f
return func() {
awscloudNewUploader = saved
}
}
func MockManifestgenDepsolver(new manifestgen.DepsolveFunc) (restore func()) {
saved := manifestgenDepsolver
manifestgenDepsolver = new
return func() {
manifestgenDepsolver = saved
}
}