api: improve parity of /{modules,projects}/{list,info} routes
These endpoint are similar in many ways, therefore just one commit. Their functionality is basically same as in lorax except for error messages and weird edge cases when handling trailing slashes. closes #64, closes #65
This commit is contained in:
parent
2ed070b218
commit
dd9a815c40
6 changed files with 441 additions and 232 deletions
|
|
@ -1,14 +1,47 @@
|
|||
package rpmmd_mock
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"time"
|
||||
)
|
||||
|
||||
func generatePackageList() rpmmd.PackageList {
|
||||
baseTime, err := time.Parse(time.RFC3339, "2006-01-02T15:04:05Z")
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var packageList rpmmd.PackageList
|
||||
|
||||
for i := 0; i < 22; i++ {
|
||||
basePackage := rpmmd.Package{
|
||||
Name: fmt.Sprintf("package%d", i),
|
||||
Summary: fmt.Sprintf("pkg%d sum", i),
|
||||
Description: fmt.Sprintf("pkg%d desc", i),
|
||||
URL: fmt.Sprintf("https://pkg%d.example.com", i),
|
||||
Epoch: 0,
|
||||
Version: fmt.Sprintf("%d.0", i),
|
||||
Release: fmt.Sprintf("%d.fc30", i),
|
||||
Arch: "x86_64",
|
||||
BuildTime: baseTime.AddDate(0, i, 0),
|
||||
License: "MIT",
|
||||
}
|
||||
|
||||
secondBuild := basePackage
|
||||
|
||||
secondBuild.Version = fmt.Sprintf("%d.1", i)
|
||||
secondBuild.BuildTime = basePackage.BuildTime.AddDate(0, 0, 1)
|
||||
|
||||
packageList = append(packageList, basePackage, secondBuild)
|
||||
}
|
||||
|
||||
return packageList
|
||||
}
|
||||
|
||||
var basePackageList = fetchPackageList{
|
||||
rpmmd.PackageList{
|
||||
{Name: "package1"},
|
||||
{Name: "package2"},
|
||||
},
|
||||
generatePackageList(),
|
||||
nil,
|
||||
}
|
||||
|
||||
|
|
@ -17,14 +50,14 @@ var BaseFixture = Fixture{
|
|||
depsolve{
|
||||
[]rpmmd.PackageSpec{
|
||||
{
|
||||
Name: "libgpg-error",
|
||||
Name: "dep-package1",
|
||||
Epoch: 0,
|
||||
Version: "1.33",
|
||||
Release: "2.fc30",
|
||||
Arch: "x86_64",
|
||||
},
|
||||
{
|
||||
Name: "libsemanage",
|
||||
Name: "dep-package2",
|
||||
Epoch: 0,
|
||||
Version: "2.9",
|
||||
Release: "1.fc30",
|
||||
|
|
@ -56,3 +89,20 @@ var BadDepsolve = Fixture{
|
|||
},
|
||||
},
|
||||
}
|
||||
|
||||
var BadFetch = Fixture{
|
||||
fetchPackageList{
|
||||
ret: nil,
|
||||
err: &rpmmd.DNFError{
|
||||
Kind: "FetchError",
|
||||
Reason: "There was a problem when fetching packages.",
|
||||
},
|
||||
},
|
||||
depsolve{
|
||||
nil,
|
||||
&rpmmd.DNFError{
|
||||
Kind: "DepsolveError",
|
||||
Reason: "There was a problem depsolving ['go2rpm']: \n Problem: conflicting requests\n - nothing provides askalono-cli needed by go2rpm-1-4.fc31.noarch",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue