From 75a96bd99dfd4dc9c91dde2b45b6481f04c9cf6e Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Mon, 11 Jan 2021 15:00:14 +0100 Subject: [PATCH] test: Job args/manifests retrieval 1. Test retrieving the job arguments from the worker using an OSBuildJob. Very basic test with an empty manifest. 2. Test retrieving job manifests through the Koji API. Uses the existing TestCompose test. The returned manifests are empty for all cases. --- internal/kojiapi/server_test.go | 2 ++ internal/worker/server_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/internal/kojiapi/server_test.go b/internal/kojiapi/server_test.go index 1f5ac9c07..57b4d5cba 100644 --- a/internal/kojiapi/server_test.go +++ b/internal/kojiapi/server_test.go @@ -338,6 +338,8 @@ func TestCompose(t *testing.T) { test.TestRoute(t, workerHandler, false, "PATCH", fmt.Sprintf("/api/worker/v1/jobs/%v", token), string(finalizeResult), http.StatusOK, `{}`) test.TestRoute(t, handler, false, "GET", fmt.Sprintf("/api/composer-koji/v1/compose/%v", finalizeID), ``, http.StatusOK, c.composeStatus) + + test.TestRoute(t, handler, false, "GET", fmt.Sprintf("/api/composer-koji/v1/compose/%v/manifests", finalizeID), ``, http.StatusOK, `[{"pipeline": {}, "sources": {}}, {"pipeline": {}, "sources": {}}]`) } } diff --git a/internal/worker/server_test.go b/internal/worker/server_test.go index 7a34eb1dd..59100e09a 100644 --- a/internal/worker/server_test.go +++ b/internal/worker/server_test.go @@ -172,6 +172,38 @@ func TestUpdate(t *testing.T) { test.TestRoute(t, handler, false, "PATCH", fmt.Sprintf("/api/worker/v1/jobs/%s", token), `{}`, http.StatusNotFound, `*`) } +func TestArgs(t *testing.T) { + distroStruct := fedoratest.New() + arch, err := distroStruct.GetArch("x86_64") + require.NoError(t, err) + imageType, err := arch.GetImageType("qcow2") + require.NoError(t, err) + manifest, err := imageType.Manifest(nil, distro.ImageOptions{Size: imageType.Size(0)}, nil, nil, nil, 0) + require.NoError(t, err) + + tempdir, err := ioutil.TempDir("", "worker-tests-") + require.NoError(t, err) + defer os.RemoveAll(tempdir) + server := newTestServer(t, tempdir) + + job := worker.OSBuildJob{ + Manifest: manifest, + ImageName: "test-image", + } + jobId, err := server.EnqueueOSBuild(arch.Name(), &job) + require.NoError(t, err) + + _, _, _, args, _, err := server.RequestJob(context.Background(), arch.Name(), []string{"osbuild"}) + require.NoError(t, err) + require.NotNil(t, args) + + var jobArgs worker.OSBuildJob + rawArgs, err := server.JobArgs(jobId, &jobArgs) + require.NoError(t, err) + require.Equal(t, args, rawArgs) + require.Equal(t, job, jobArgs) +} + func TestUpload(t *testing.T) { tempdir, err := ioutil.TempDir("", "worker-tests-") require.NoError(t, err)