|
Packit |
63bb0d |
package rpmmd_mock
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
import (
|
|
Packit |
63bb0d |
"fmt"
|
|
Packit |
63bb0d |
"sort"
|
|
Packit |
63bb0d |
"time"
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
"github.com/osbuild/osbuild-composer/internal/jobqueue/fsjobqueue"
|
|
Packit |
63bb0d |
"github.com/osbuild/osbuild-composer/internal/worker"
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
|
Packit |
63bb0d |
"github.com/osbuild/osbuild-composer/internal/store"
|
|
Packit |
63bb0d |
)
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
type FixtureGenerator func(tmpdir string) Fixture
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func generatePackageList() rpmmd.PackageList {
|
|
Packit |
63bb0d |
baseTime, err := time.Parse(time.RFC3339, "2006-01-02T15:04:05Z")
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
if err != nil {
|
|
Packit |
63bb0d |
panic(err)
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
var packageList rpmmd.PackageList
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
for i := 0; i < 22; i++ {
|
|
Packit |
63bb0d |
basePackage := rpmmd.Package{
|
|
Packit |
63bb0d |
Name: fmt.Sprintf("package%d", i),
|
|
Packit |
63bb0d |
Summary: fmt.Sprintf("pkg%d sum", i),
|
|
Packit |
63bb0d |
Description: fmt.Sprintf("pkg%d desc", i),
|
|
Packit |
63bb0d |
URL: fmt.Sprintf("https://pkg%d.example.com", i),
|
|
Packit |
63bb0d |
Epoch: 0,
|
|
Packit |
63bb0d |
Version: fmt.Sprintf("%d.0", i),
|
|
Packit |
63bb0d |
Release: fmt.Sprintf("%d.fc30", i),
|
|
Packit |
63bb0d |
Arch: "x86_64",
|
|
Packit |
63bb0d |
BuildTime: baseTime.AddDate(0, i, 0),
|
|
Packit |
63bb0d |
License: "MIT",
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
secondBuild := basePackage
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
secondBuild.Version = fmt.Sprintf("%d.1", i)
|
|
Packit |
63bb0d |
secondBuild.BuildTime = basePackage.BuildTime.AddDate(0, 0, 1)
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
packageList = append(packageList, basePackage, secondBuild)
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
sort.Slice(packageList, func(i, j int) bool {
|
|
Packit |
63bb0d |
return packageList[i].Name < packageList[j].Name
|
|
Packit |
63bb0d |
})
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
return packageList
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func createBaseWorkersFixture(tmpdir string) *worker.Server {
|
|
Packit Service |
3a6627 |
q, err := fsjobqueue.New(tmpdir)
|
|
Packit Service |
3a6627 |
if err != nil {
|
|
Packit Service |
3a6627 |
panic(err)
|
|
Packit Service |
3a6627 |
}
|
|
Packit Service |
3a6627 |
return worker.NewServer(nil, q, "")
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func createBaseDepsolveFixture() []rpmmd.PackageSpec {
|
|
Packit |
63bb0d |
return []rpmmd.PackageSpec{
|
|
Packit |
63bb0d |
{
|
|
Packit |
63bb0d |
Name: "dep-package3",
|
|
Packit |
63bb0d |
Epoch: 7,
|
|
Packit |
63bb0d |
Version: "3.0.3",
|
|
Packit |
63bb0d |
Release: "1.fc30",
|
|
Packit |
63bb0d |
Arch: "x86_64",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
{
|
|
Packit |
63bb0d |
Name: "dep-package1",
|
|
Packit |
63bb0d |
Epoch: 0,
|
|
Packit |
63bb0d |
Version: "1.33",
|
|
Packit |
63bb0d |
Release: "2.fc30",
|
|
Packit |
63bb0d |
Arch: "x86_64",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
{
|
|
Packit |
63bb0d |
Name: "dep-package2",
|
|
Packit |
63bb0d |
Epoch: 0,
|
|
Packit |
63bb0d |
Version: "2.9",
|
|
Packit |
63bb0d |
Release: "1.fc30",
|
|
Packit |
63bb0d |
Arch: "x86_64",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func BaseFixture(tmpdir string) Fixture {
|
|
Packit |
63bb0d |
return Fixture{
|
|
Packit |
63bb0d |
fetchPackageList{
|
|
Packit |
63bb0d |
generatePackageList(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
depsolve{
|
|
Packit |
63bb0d |
createBaseDepsolveFixture(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
store.FixtureBase(),
|
|
Packit Service |
3a6627 |
createBaseWorkersFixture(tmpdir),
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func NoComposesFixture(tmpdir string) Fixture {
|
|
Packit |
63bb0d |
return Fixture{
|
|
Packit |
63bb0d |
fetchPackageList{
|
|
Packit |
63bb0d |
generatePackageList(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
depsolve{
|
|
Packit |
63bb0d |
createBaseDepsolveFixture(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
store.FixtureEmpty(),
|
|
Packit Service |
3a6627 |
createBaseWorkersFixture(tmpdir),
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func NonExistingPackage(tmpdir string) Fixture {
|
|
Packit |
63bb0d |
return Fixture{
|
|
Packit |
63bb0d |
fetchPackageList{
|
|
Packit |
63bb0d |
generatePackageList(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
depsolve{
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
&rpmmd.DNFError{
|
|
Packit |
63bb0d |
Kind: "MarkingErrors",
|
|
Packit |
63bb0d |
Reason: "Error occurred when marking packages for installation: Problems in request:\nmissing packages: fash",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
store.FixtureBase(),
|
|
Packit Service |
3a6627 |
createBaseWorkersFixture(tmpdir),
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func BadDepsolve(tmpdir string) Fixture {
|
|
Packit |
63bb0d |
return Fixture{
|
|
Packit |
63bb0d |
fetchPackageList{
|
|
Packit |
63bb0d |
generatePackageList(),
|
|
Packit |
63bb0d |
map[string]string{"base": "sha256:f34848ca92665c342abd5816c9e3eda0e82180671195362bcd0080544a3bc2ac"},
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
depsolve{
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
&rpmmd.DNFError{
|
|
Packit |
63bb0d |
Kind: "DepsolveError",
|
|
Packit |
63bb0d |
Reason: "There was a problem depsolving ['go2rpm']: \n Problem: conflicting requests\n - nothing provides askalono-cli needed by go2rpm-1-4.fc31.noarch",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
store.FixtureBase(),
|
|
Packit Service |
3a6627 |
createBaseWorkersFixture(tmpdir),
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
func BadFetch(tmpdir string) Fixture {
|
|
Packit |
63bb0d |
return Fixture{
|
|
Packit |
63bb0d |
fetchPackageList{
|
|
Packit |
63bb0d |
ret: nil,
|
|
Packit |
63bb0d |
checksums: nil,
|
|
Packit |
63bb0d |
err: &rpmmd.DNFError{
|
|
Packit |
63bb0d |
Kind: "FetchError",
|
|
Packit |
63bb0d |
Reason: "There was a problem when fetching packages.",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
depsolve{
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
nil,
|
|
Packit |
63bb0d |
&rpmmd.DNFError{
|
|
Packit |
63bb0d |
Kind: "DepsolveError",
|
|
Packit |
63bb0d |
Reason: "There was a problem depsolving ['go2rpm']: \n Problem: conflicting requests\n - nothing provides askalono-cli needed by go2rpm-1-4.fc31.noarch",
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
},
|
|
Packit |
63bb0d |
store.FixtureBase(),
|
|
Packit Service |
3a6627 |
createBaseWorkersFixture(tmpdir),
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|