TestDistro: return dummy values from PackageSets related methods

Return dummy values from the following methods:
 - PackageSets
 - PayloadPackageSets
 - PackageSetsChains

Use package set names commonly used by recent distro definitions.
Package sets are based on values used by rpmmd mock implementation.

Adjust two Weldr API unit test check for the dummy values. Without
this fix, these unit tests would start failing after the move to
`rpmmd.DepsolvePackageSets()` in Weldr API compose handler.
This commit is contained in:
Tomas Hozza 2022-04-25 20:55:41 +02:00 committed by Ondřej Budai
parent 42b3512b12
commit 21c6c452ef
2 changed files with 60 additions and 15 deletions

View file

@ -12,6 +12,19 @@ import (
"github.com/osbuild/osbuild-composer/internal/rpmmd"
)
const (
// package set names
// build package set name
buildPkgsKey = "build"
// main/common os image package set name
osPkgsKey = "packages"
// blueprint package set name
blueprintPkgsKey = "blueprint"
)
type TestDistro struct {
name string
releasever string
@ -173,7 +186,25 @@ func (t *TestImageType) PartitionType() string {
}
func (t *TestImageType) PackageSets(bp blueprint.Blueprint) map[string]rpmmd.PackageSet {
return nil
return map[string]rpmmd.PackageSet{
buildPkgsKey: {
Include: []string{
"dep-package1",
"dep-package2",
"dep-package3",
},
},
blueprintPkgsKey: {
Include: bp.GetPackages(),
},
osPkgsKey: {
Include: []string{
"dep-package1",
"dep-package2",
"dep-package3",
},
},
}
}
func (t *TestImageType) BuildPipelines() []string {
@ -185,11 +216,13 @@ func (t *TestImageType) PayloadPipelines() []string {
}
func (t *TestImageType) PayloadPackageSets() []string {
return []string{}
return []string{blueprintPkgsKey}
}
func (t *TestImageType) PackageSetsChains() map[string][]string {
return map[string][]string{}
return map[string][]string{
osPkgsKey: {osPkgsKey, blueprintPkgsKey},
}
}
func (t *TestImageType) Exports() []string {

View file

@ -625,6 +625,14 @@ func TestCompose(t *testing.T) {
manifest, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, 0)
require.NoError(t, err)
tempdir := t.TempDir()
fixtureGenerator := rpmmd_mock.NoComposesFixture
fixture := fixtureGenerator(tempdir)
rpmMD := rpmmd_mock.NewRPMMDMock(fixture)
packageSpecSets, err := rpmMD.DepsolvePackageSets(nil, nil, nil, nil, "", "", "")
require.NoError(t, err)
expectedComposeLocal := &store.Compose{
Blueprint: &blueprint.Blueprint{
Name: "test",
@ -639,7 +647,7 @@ func TestCompose(t *testing.T) {
ImageType: imgType,
Manifest: manifest,
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
expectedComposeLocalAndAws := &store.Compose{
Blueprint: &blueprint.Blueprint{
@ -670,7 +678,7 @@ func TestCompose(t *testing.T) {
},
},
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
expectedComposeOSTree := &store.Compose{
Blueprint: &blueprint.Blueprint{
@ -686,7 +694,7 @@ func TestCompose(t *testing.T) {
ImageType: imgType,
Manifest: manifest,
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
// For 2nd distribution
@ -712,7 +720,7 @@ func TestCompose(t *testing.T) {
ImageType: imgType2,
Manifest: manifest2,
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
// create two ostree repos, one to serve the default test_distro ref (for fallback tests) and one to serve a custom ref
@ -883,10 +891,8 @@ func TestCompose(t *testing.T) {
},
}
tempdir := t.TempDir()
for _, c := range cases {
api, s := createWeldrAPI(tempdir, rpmmd_mock.NoComposesFixture)
api, s := createWeldrAPI(tempdir, fixtureGenerator)
test.TestRoute(t, api, c.External, c.Method, c.Path, c.Body, c.ExpectedStatus, c.ExpectedJSON, c.IgnoreFields...)
if c.ExpectedStatus != http.StatusOK {
@ -1629,6 +1635,14 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
manifest, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, 0)
require.NoError(t, err)
tempdir := t.TempDir()
fixtureGenerator := rpmmd_mock.NoComposesFixture
fixture := fixtureGenerator(tempdir)
rpmMD := rpmmd_mock.NewRPMMDMock(fixture)
packageSpecSets, err := rpmMD.DepsolvePackageSets(nil, nil, nil, nil, "", "", "")
require.NoError(t, err)
expectedComposeLocal := &store.Compose{
Blueprint: &blueprint.Blueprint{
Name: "test",
@ -1643,7 +1657,7 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
ImageType: imgType,
Manifest: manifest,
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
expectedComposeLocal2 := &store.Compose{
@ -1660,7 +1674,7 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
ImageType: imgType2,
Manifest: manifest,
},
Packages: []rpmmd.PackageSpec{},
Packages: packageSpecSets["packages"],
}
var cases = []struct {
@ -1771,10 +1785,8 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
},
}
tempdir := t.TempDir()
for _, c := range cases {
api, s := createWeldrAPI2(tempdir, rpmmd_mock.NoComposesFixture, c.imageTypeDenylist)
api, s := createWeldrAPI2(tempdir, fixtureGenerator, c.imageTypeDenylist)
test.TestRoute(t, api, true, "POST", c.Path, c.Body, c.ExpectedStatus, c.ExpectedJSON, c.IgnoreFields...)
if c.ExpectedStatus != http.StatusOK {