This information is now provided only when an architecture is specified, so it is necessary to first obtain object implementing the Arch interface then object implementing the ImageType interface and then you can get the filename and mime type. Tests are changed accordingly to the new API.
95 lines
1.9 KiB
Go
95 lines
1.9 KiB
Go
package rhel82_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/osbuild/osbuild-composer/internal/distro/rhel82"
|
|
)
|
|
|
|
func TestFilenameFromType(t *testing.T) {
|
|
type args struct {
|
|
outputFormat string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
want1 string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "ami",
|
|
args: args{"ami"},
|
|
want: "image.raw.xz",
|
|
want1: "application/octet-stream",
|
|
},
|
|
{
|
|
name: "ext4",
|
|
args: args{"ext4-filesystem"},
|
|
want: "filesystem.img",
|
|
want1: "application/octet-stream",
|
|
},
|
|
{
|
|
name: "openstack",
|
|
args: args{"openstack"},
|
|
want: "disk.qcow2",
|
|
want1: "application/x-qemu-disk",
|
|
},
|
|
{
|
|
name: "partitioned-disk",
|
|
args: args{"partitioned-disk"},
|
|
want: "disk.img",
|
|
want1: "application/octet-stream",
|
|
},
|
|
{
|
|
name: "qcow2",
|
|
args: args{"qcow2"},
|
|
want: "disk.qcow2",
|
|
want1: "application/x-qemu-disk",
|
|
},
|
|
{
|
|
name: "tar",
|
|
args: args{"tar"},
|
|
want: "root.tar.xz",
|
|
want1: "application/x-tar",
|
|
},
|
|
{
|
|
name: "vhd",
|
|
args: args{"vhd"},
|
|
want: "disk.vhd",
|
|
want1: "application/x-vhd",
|
|
},
|
|
{
|
|
name: "vmdk",
|
|
args: args{"vmdk"},
|
|
want: "disk.vmdk",
|
|
want1: "application/x-vmdk",
|
|
},
|
|
{
|
|
name: "invalid-output-type",
|
|
args: args{"foobar"},
|
|
wantErr: true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
dist := rhel82.New()
|
|
arch, _ := dist.GetArch("x86_64")
|
|
imgType, err := arch.GetImageType(tt.args.outputFormat)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("Arch.GetImageType() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !tt.wantErr {
|
|
got := imgType.Filename()
|
|
got1 := imgType.MIMEType()
|
|
if got != tt.want {
|
|
t.Errorf("ImageType.Filename() got = %v, want %v", got, tt.want)
|
|
}
|
|
if got1 != tt.want1 {
|
|
t.Errorf("ImageType.MIMEType() got1 = %v, want %v", got1, tt.want1)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|