test: use T.TempDir to create temporary test directory

The directory created by `T.TempDir` is automatically removed when the
test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
This commit is contained in:
Eng Zer Jun 2022-03-09 22:23:04 +08:00 committed by Ondřej Budai
parent c9a08da29f
commit 00ea3eb285
12 changed files with 104 additions and 392 deletions

View file

@ -5,9 +5,7 @@
package main
import (
"io/ioutil"
"net/http"
"os"
"path"
"testing"
@ -63,9 +61,7 @@ func TestCrossArchDepsolve(t *testing.T) {
t.Parallel()
// Set up temporary directory for rpm/dnf cache
dir, err := ioutil.TempDir("/tmp", "rpmmd-test-")
require.Nilf(t, err, "Failed to create tmp dir for depsolve test: %v", err)
defer os.RemoveAll(dir)
dir := t.TempDir()
// use a fullpath to dnf-json, this allows this test to have an arbitrary
// working directory

View file

@ -4,10 +4,8 @@ import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"testing"
"time"
@ -28,10 +26,7 @@ type jobResult struct {
}
func TestKojiCompose(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
kojiServer, workerServer, _, cancel := newV2Server(t, dir, []string{""}, false)
kojiServer, workerServer, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
handler := kojiServer.Handler("/api/image-builder-composer/v2")
workerHandler := workerServer.Handler()
defer cancel()
@ -461,10 +456,7 @@ func TestKojiCompose(t *testing.T) {
}
func TestKojiRequest(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
server, _, _, cancel := newV2Server(t, dir, []string{""}, false)
server, _, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
handler := server.Handler("/api/image-builder-composer/v2")
defer cancel()
@ -476,7 +468,7 @@ func TestKojiRequest(t *testing.T) {
resp := rec.Result()
var status api.Status
err = json.NewDecoder(resp.Body).Decode(&status)
err := json.NewDecoder(resp.Body).Decode(&status)
require.NoError(t, err)
require.Equal(t, http.StatusNotFound, resp.StatusCode)
@ -493,10 +485,7 @@ func TestKojiRequest(t *testing.T) {
}
func TestKojiJobTypeValidation(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
server, workers, _, cancel := newV2Server(t, dir, []string{""}, false)
server, workers, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
handler := server.Handler("/api/image-builder-composer/v2")
defer cancel()

View file

@ -4,9 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"os"
"testing"
"time"
@ -191,13 +189,9 @@ func runNextJob(t *testing.T, jobs []uuid.UUID, workerHandler http.Handler, orgI
// that all jobs are assigned to the correct channel, therefore we need also
// this test.
func TestMultitenancy(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
// Passing an empty list as depsolving channels, we want to do depsolves
// ourselvess
apiServer, workerServer, q, cancel := newV2Server(t, dir, []string{}, true)
apiServer, workerServer, q, cancel := newV2Server(t, t.TempDir(), []string{}, true)
handler := apiServer.Handler("/api/image-builder-composer/v2")
defer cancel()

View file

@ -69,10 +69,7 @@ func newV2Server(t *testing.T, dir string, depsolveChannels []string, enableJWT
}
func TestUnknownRoute(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, _, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, _, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "GET", "/api/image-builder-composer/v2/badroute", ``, http.StatusNotFound, `
@ -86,10 +83,7 @@ func TestUnknownRoute(t *testing.T) {
}
func TestGetError(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, _, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, _, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "GET", "/api/image-builder-composer/v2/errors/4", ``, http.StatusOK, `
@ -112,10 +106,7 @@ func TestGetError(t *testing.T) {
}
func TestGetErrorList(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, _, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, _, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "GET", "/api/image-builder-composer/v2/errors?page=3&size=1", ``, http.StatusOK, `
@ -134,6 +125,7 @@ func TestGetErrorList(t *testing.T) {
}
func TestCompose(t *testing.T) {
// Test is flaky if we use t.TempDir()
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
@ -555,10 +547,7 @@ func TestCompose(t *testing.T) {
}
func TestComposeStatusSuccess(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, wrksrv, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, wrksrv, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "POST", "/api/image-builder-composer/v2/compose", fmt.Sprintf(`
@ -628,10 +617,7 @@ func TestComposeStatusSuccess(t *testing.T) {
}
func TestComposeStatusFailure(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, wrksrv, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, wrksrv, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "POST", "/api/image-builder-composer/v2/compose", fmt.Sprintf(`
@ -687,10 +673,7 @@ func TestComposeStatusFailure(t *testing.T) {
}
func TestComposeLegacyError(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, wrksrv, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, wrksrv, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "POST", "/api/image-builder-composer/v2/compose", fmt.Sprintf(`
@ -749,10 +732,7 @@ func TestComposeLegacyError(t *testing.T) {
}
func TestComposeJobError(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
srv, wrksrv, _, cancel := newV2Server(t, dir, []string{""}, false)
srv, wrksrv, _, cancel := newV2Server(t, t.TempDir(), []string{""}, false)
defer cancel()
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "POST", "/api/image-builder-composer/v2/compose", fmt.Sprintf(`
@ -814,6 +794,7 @@ func TestComposeJobError(t *testing.T) {
}
func TestComposeCustomizations(t *testing.T) {
// Test is flaky if we use t.TempDir()
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)
@ -863,6 +844,7 @@ func TestComposeCustomizations(t *testing.T) {
}
func TestImageTypes(t *testing.T) {
// Test is flaky if we use t.TempDir()
dir, err := ioutil.TempDir("", "osbuild-composer-test-api-v2-")
require.NoError(t, err)
defer os.RemoveAll(dir)

View file

@ -1,8 +1,6 @@
package fsjobqueue_test
import (
"io/ioutil"
"os"
"testing"
"github.com/stretchr/testify/require"
@ -14,16 +12,12 @@ import (
func TestJobQueueInterface(t *testing.T) {
jobqueuetest.TestJobQueue(t, func() (jobqueue.JobQueue, func(), error) {
dir, err := ioutil.TempDir("", "jobqueue-test-")
if err != nil {
return nil, nil, err
}
dir := t.TempDir()
q, err := fsjobqueue.New(dir)
if err != nil {
return nil, nil, err
}
stop := func() {
_ = os.RemoveAll(dir)
}
return q, stop, nil
})

View file

@ -11,13 +11,7 @@ import (
)
func TestWriteFileAtomically(t *testing.T) {
dir, err := ioutil.TempDir("", "jsondb-test-")
require.NoError(t, err)
defer func() {
err := os.RemoveAll(dir)
require.NoError(t, err)
}()
dir := t.TempDir()
t.Run("success", func(t *testing.T) {
octopus := []byte("🐙\n")
@ -25,7 +19,7 @@ func TestWriteFileAtomically(t *testing.T) {
// use an uncommon mode to check it's set correctly
perm := os.FileMode(0750)
err = writeFileAtomically(dir, "octopus", perm, func(f *os.File) error {
err := writeFileAtomically(dir, "octopus", perm, func(f *os.File) error {
_, err := f.Write(octopus)
return err
})
@ -48,12 +42,12 @@ func TestWriteFileAtomically(t *testing.T) {
})
t.Run("error", func(t *testing.T) {
err = writeFileAtomically(dir, "no-octopus", 0750, func(f *os.File) error {
err := writeFileAtomically(dir, "no-octopus", 0750, func(f *os.File) error {
return errors.New("something went wrong")
})
require.Error(t, err)
_, err := os.Stat(path.Join(dir, "no-octopus"))
_, err = os.Stat(path.Join(dir, "no-octopus"))
require.Error(t, err)
// ensure there are no stray temporary files

View file

@ -17,11 +17,6 @@ type document struct {
CanSwim bool `json:"can-swim"`
}
func cleanupTempDir(t *testing.T, dir string) {
err := os.RemoveAll(dir)
require.NoError(t, err)
}
// If the passed directory is not readable (writable), we should notice on the
// first read (write).
func TestDegenerate(t *testing.T) {
@ -42,14 +37,12 @@ func TestDegenerate(t *testing.T) {
})
t.Run("invalid-json", func(t *testing.T) {
dir, err := ioutil.TempDir("", "jsondb-test-")
require.NoError(t, err)
defer cleanupTempDir(t, dir)
dir := t.TempDir()
db := jsondb.New(dir, 0755)
// write-only file
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
require.NoError(t, err)
var d document
@ -59,11 +52,9 @@ func TestDegenerate(t *testing.T) {
}
func TestCorrupt(t *testing.T) {
dir, err := ioutil.TempDir("", "jsondb-test-")
require.NoError(t, err)
defer cleanupTempDir(t, dir)
dir := t.TempDir()
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
require.NoError(t, err)
db := jsondb.New(dir, 0755)
@ -73,11 +64,9 @@ func TestCorrupt(t *testing.T) {
}
func TestRead(t *testing.T) {
dir, err := ioutil.TempDir("", "jsondb-test-")
require.NoError(t, err)
defer cleanupTempDir(t, dir)
dir := t.TempDir()
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0600)
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0600)
require.NoError(t, err)
db := jsondb.New(dir, 0755)
@ -106,9 +95,7 @@ func TestRead(t *testing.T) {
}
func TestMultiple(t *testing.T) {
dir, err := ioutil.TempDir("", "jsondb-test-")
require.NoError(t, err)
defer cleanupTempDir(t, dir)
dir := t.TempDir()
perm := os.FileMode(0600)
documents := map[string]document{
@ -120,7 +107,7 @@ func TestMultiple(t *testing.T) {
db := jsondb.New(dir, perm)
for name, doc := range documents {
err = db.Write(name, doc)
err := db.Write(name, doc)
require.NoError(t, err)
}
names, err := db.List()

View file

@ -4,11 +4,8 @@ import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/http/httptest"
"os"
"sync"
"testing"
"time"
@ -43,13 +40,7 @@ func newTestKojiServer(t *testing.T, dir string) (*kojiapi.Server, *worker.Serve
}
func TestStatus(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-kojiapi-")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
kojiServer, _ := newTestKojiServer(t, dir)
kojiServer, _ := newTestKojiServer(t, t.TempDir())
handler := kojiServer.Handler("/api/composer-koji/v1")
test.TestRoute(t, handler, false, "GET", "/api/composer-koji/v1/status", ``, http.StatusOK, `{"status":"OK"}`, "message")
}
@ -59,13 +50,7 @@ type jobResult struct {
}
func TestCompose(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-kojiapi-")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
kojiServer, workerServer := newTestKojiServer(t, dir)
kojiServer, workerServer := newTestKojiServer(t, t.TempDir())
handler := kojiServer.Handler("/api/composer-koji/v1")
workerHandler := workerServer.Handler()
@ -455,13 +440,7 @@ func TestCompose(t *testing.T) {
}
func TestRequest(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-kojiapi-")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
server, _ := newTestKojiServer(t, dir)
server, _ := newTestKojiServer(t, t.TempDir())
handler := server.Handler("/api/composer-koji/v1")
// Make request to an invalid route
@ -472,7 +451,7 @@ func TestRequest(t *testing.T) {
resp := rec.Result()
var status api.Status
err = json.NewDecoder(resp.Body).Decode(&status)
err := json.NewDecoder(resp.Body).Decode(&status)
require.NoError(t, err)
require.Equal(t, http.StatusNotFound, resp.StatusCode)
@ -489,11 +468,7 @@ func TestRequest(t *testing.T) {
}
func TestJobTypeValidation(t *testing.T) {
dir, err := ioutil.TempDir("", "osbuild-composer-test-kojiapi-")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
dir := t.TempDir()
server, workers := newTestKojiServer(t, dir)
handler := server.Handler("/api/composer-koji/v1")

View file

@ -1,8 +1,6 @@
package store
import (
"io/ioutil"
"os"
"testing"
"time"
@ -112,20 +110,13 @@ func (suite *storeTest) SetupSuite() {
//setup before each test
func (suite *storeTest) SetupTest() {
tmpDir, err := ioutil.TempDir("/tmp", "osbuild-composer-test-")
suite.NoError(err)
distro := test_distro.New()
arch, err := distro.GetArch(test_distro.TestArchName)
suite.NoError(err)
suite.dir = tmpDir
suite.dir = suite.T().TempDir()
suite.myStore = New(&suite.dir, arch, nil)
}
//teardown after each test
func (suite *storeTest) TearDownTest() {
os.RemoveAll(suite.dir)
}
func (suite *storeTest) TestRandomSHA1String() {
hash, err := randomSHA1String()
suite.NoError(err)

View file

@ -125,11 +125,7 @@ func TestBasic(t *testing.T) {
{"/api/v1/compose/types?distro=fedora-1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
for _, c := range cases {
test.TestRoute(t, api, true, "GET", c.Path, ``, c.ExpectedStatus, c.ExpectedJSON)
}
@ -153,9 +149,7 @@ func TestBlueprintsNew(t *testing.T) {
{"POST", "/api/v0/blueprints/new", `{"name":"test","description":"Test","distro":"fedora-1","packages":[],"version":""}`, http.StatusBadRequest, `{"status":false,"errors":[{"id":"BlueprintsError","msg":"'fedora-1' is not a valid distribution"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -164,10 +158,6 @@ func TestBlueprintsNew(t *testing.T) {
}
func TestBlueprintsNewToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
blueprint := `
name = "test"
description = "Test"
@ -181,7 +171,7 @@ version = "2.4.*"`
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -189,15 +179,11 @@ version = "2.4.*"`
}
func TestBlueprintsEmptyToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
req := httptest.NewRequest("POST", "/api/v0/blueprints/new", bytes.NewReader(nil))
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -205,10 +191,6 @@ func TestBlueprintsEmptyToml(t *testing.T) {
}
func TestBlueprintsInvalidToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
blueprint := `
name = "test"
description = "Test"
@ -222,7 +204,7 @@ version = "2.4.*"`
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -242,9 +224,7 @@ func TestBlueprintsWorkspaceJSON(t *testing.T) {
{"POST", "/api/v0/blueprints/workspace", ``, http.StatusBadRequest, `{"status":false,"errors":[{"id":"BlueprintsError","msg":"Missing blueprint"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -253,10 +233,6 @@ func TestBlueprintsWorkspaceJSON(t *testing.T) {
}
func TestBlueprintsWorkspaceTOML(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
blueprint := `
name = "test"
description = "Test"
@ -270,7 +246,7 @@ version = "2.4.*"`
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -278,15 +254,11 @@ version = "2.4.*"`
}
func TestBlueprintsWorkspaceEmptyTOML(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
req := httptest.NewRequest("POST", "/api/v0/blueprints/workspace", bytes.NewReader(nil))
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -294,10 +266,6 @@ func TestBlueprintsWorkspaceEmptyTOML(t *testing.T) {
}
func TestBlueprintsWorkspaceInvalidTOML(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
blueprint := `
name = "test"
description = "Test"
@ -311,7 +279,7 @@ version = "2.4.*"`
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -333,9 +301,7 @@ func TestBlueprintsInfo(t *testing.T) {
{"GET", "/api/v0/blueprints/info/test3-non", ``, http.StatusOK, `{"blueprints":[],"changes":[],"errors":[{"id":"UnknownBlueprint","msg":"test3-non: "}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -349,11 +315,7 @@ func TestBlueprintsInfo(t *testing.T) {
}
func TestBlueprintsInfoToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
test.SendHTTP(api, true, "POST", "/api/v0/blueprints/new", `{"name":"test1","description":"Test","packages":[{"name":"httpd","version":"2.4.*"}],"version":"0.0.0"}`)
req := httptest.NewRequest("GET", "/api/v0/blueprints/info/test1?format=toml", nil)
@ -364,7 +326,7 @@ func TestBlueprintsInfoToml(t *testing.T) {
require.Equal(t, http.StatusOK, resp.StatusCode)
var got blueprint.Blueprint
_, err = toml.DecodeReader(resp.Body, &got)
_, err := toml.DecodeReader(resp.Body, &got)
require.NoErrorf(t, err, "error decoding toml file")
expected := blueprint.Blueprint{
@ -384,11 +346,7 @@ func TestBlueprintsInfoToml(t *testing.T) {
}
func TestNonExistentBlueprintsInfoToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
req := httptest.NewRequest("GET", "/api/v0/blueprints/info/test3-non?format=toml", nil)
recorder := httptest.NewRecorder()
api.ServeHTTP(recorder, req)
@ -453,9 +411,7 @@ func TestBlueprintsFreeze(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/blueprints/freeze/test,test2", http.StatusOK, `{"blueprints":[{"blueprint":{"name":"test","description":"Test","distro":"","version":"0.0.1","packages":[{"name":"dep-package1","version":"1.33-2.fc30.x86_64"},{"name":"dep-package3","version":"7:3.0.3-1.fc30.x86_64"}],"modules":[{"name":"dep-package2","version":"2.9-1.fc30.x86_64"}],"groups":[]}},{"blueprint":{"name":"test2","description":"Test","distro":"","version":"0.0.0","packages":[{"name":"dep-package1","version":"1.33-2.fc30.x86_64"},{"name":"dep-package3","version":"7:3.0.3-1.fc30.x86_64"}],"modules":[{"name":"dep-package2","version":"2.9-1.fc30.x86_64"}],"groups":[]}}],"errors":[]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -476,9 +432,7 @@ func TestBlueprintsFreeze(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/blueprints/freeze/missing?format=toml", http.StatusOK, ""},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -497,9 +451,7 @@ func TestBlueprintsFreeze(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/blueprints/freeze/test,test2?format=toml", http.StatusBadRequest, "{\"status\":false,\"errors\":[{\"id\":\"HTTPError\",\"msg\":\"toml format only supported when requesting one blueprint\"}]}"},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -521,9 +473,7 @@ func TestBlueprintsDiff(t *testing.T) {
{"GET", "/api/v0/blueprints/diff/test/NEWEST/WORKSPACE", ``, http.StatusOK, `{"diff":[{"new":{"Package":{"name":"systemd","version":"123"}},"old":null},{"new":null,"old":{"Package":{"name":"httpd","version":"2.4.*"}}}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -546,9 +496,7 @@ func TestBlueprintsDelete(t *testing.T) {
{"DELETE", "/api/v0/blueprints/delete/test3-non", ``, http.StatusBadRequest, `{"status":false,"errors":[{"id":"BlueprintsError","msg":"Unknown blueprint: test3-non"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -559,11 +507,7 @@ func TestBlueprintsDelete(t *testing.T) {
}
func TestBlueprintsChanges(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
rand.Seed(time.Now().UnixNano())
// math/rand is good enough in this case
/* #nosec G404 */
@ -590,9 +534,7 @@ func TestBlueprintsDepsolve(t *testing.T) {
{rpmmd_mock.BadDepsolve, http.StatusOK, `{"blueprints":[{"blueprint":{"name":"test","description":"Test","distro":"","version":"0.0.1","packages":[{"name":"dep-package1","version":"*"}],"groups":[],"modules":[{"name":"dep-package3","version":"*"}]},"dependencies":[]}],"errors":[{"id":"BlueprintsError","msg":"test: DNF error occured: DepsolveError: There was a problem depsolving ['go2rpm']: \n Problem: conflicting requests\n - nothing provides askalono-cli needed by go2rpm-1-4.fc31.noarch"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -605,11 +547,7 @@ func TestBlueprintsDepsolve(t *testing.T) {
// TestOldBlueprintsUndo run tests with blueprint changes after a service restart
// Old blueprints are not saved, after a restart the changes are listed, but cannot be recalled
func TestOldBlueprintsUndo(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.OldChangesFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.OldChangesFixture)
rand.Seed(time.Now().UnixNano())
// math/rand is good enough in this case
/* #nosec G404 */
@ -643,11 +581,7 @@ func TestOldBlueprintsUndo(t *testing.T) {
// TestNewBlueprintsUndo run tests with blueprint changes without a service restart
func TestNewBlueprintsUndo(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
rand.Seed(time.Now().UnixNano())
// math/rand is good enough in this case
/* #nosec G404 */
@ -949,9 +883,7 @@ func TestCompose(t *testing.T) {
},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, s := createWeldrAPI(tempdir, rpmmd_mock.NoComposesFixture)
@ -997,9 +929,7 @@ func TestComposeDelete(t *testing.T) {
{"/api/v0/compose/delete/30000000-0000-0000-0000-000000000003,42000000-0000-0000-0000-000000000000", `{"uuids":[{"uuid":"30000000-0000-0000-0000-000000000003","status":true}],"errors":[{"id":"UnknownUUID","msg":"compose 42000000-0000-0000-0000-000000000000 doesn't exist"}]}`, []string{"30000000-0000-0000-0000-000000000000", "30000000-0000-0000-0000-000000000001", "30000000-0000-0000-0000-000000000002", "30000000-0000-0000-0000-000000000004"}},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, s := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1036,9 +966,7 @@ func TestComposeStatus(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1065,9 +993,7 @@ func TestComposeInfo(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1095,9 +1021,7 @@ func TestComposeLogs(t *testing.T) {
{"/api/v1/compose/results/30000000-0000-0000-0000-000000000002", "attachment; filename=30000000-0000-0000-0000-000000000002.tar", "application/x-tar", "30000000-0000-0000-0000-000000000002.json", "{\"sources\":{},\"pipeline\":{}}"},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range successCases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1166,9 +1090,7 @@ func TestComposeLog(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1194,9 +1116,7 @@ func TestComposeQueue(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1222,9 +1142,7 @@ func TestComposeFinished(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1250,9 +1168,7 @@ func TestComposeFailed(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1281,9 +1197,7 @@ func TestSourcesNew(t *testing.T) {
{"POST", "/api/v1/projects/source/new", `{"id": "fish","name":"fish repo","url": "https://download.opensuse.org/repositories/shells:/fish:/release:/3/Fedora_29/","type": "yum-baseurl","check_ssl": false,"check_gpg": false,"distros":["fedora-1"]}`, http.StatusBadRequest, `{"status":false, "errors":[{"id":"ProjectsError", "msg":"Invalid distributions: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1293,9 +1207,7 @@ func TestSourcesNew(t *testing.T) {
}
func TestSourcesNewTomlV0(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
sources := []string{`
name = "fish"
@ -1327,9 +1239,7 @@ check_gpg = false
// Empty TOML, and invalid TOML should return an error
func TestSourcesNewWrongTomlV0(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
sources := []string{``, `
url = "https://download.opensuse.org/repositories/shells:/fish:/release:/3/Fedora_29/"
@ -1352,9 +1262,7 @@ check_gpg = false
// TestSourcesNewTomlV1 tests the v1 sources API with id and name
func TestSourcesNewTomlV1(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
sources := []string{`
id = "fish"
@ -1393,10 +1301,6 @@ check_gpg = false
}
func TestSourcesInfoTomlV1(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
source := `
id = "fish"
name = "fish"
@ -1411,7 +1315,7 @@ rhsm = true
req.Header.Set("Content-Type", "text/x-toml")
recorder := httptest.NewRecorder()
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
api.ServeHTTP(recorder, req)
r := recorder.Result()
@ -1422,9 +1326,7 @@ rhsm = true
// TestSourcesNewWrongTomlV1 Tests that Empty TOML, and invalid TOML should return an error
func TestSourcesNewWrongTomlV1(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
sources := []string{``, `
url = "https://download.opensuse.org/repositories/shells:/fish:/release:/3/Fedora_29/"
@ -1458,13 +1360,9 @@ check_gpg = false
}
func TestSourcesInfo(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
sourceStr := `{"name":"fish","type":"yum-baseurl","url":"https://download.opensuse.org/repositories/shells:/fish:/release:/3/Fedora_29/","check_gpg":false,"check_ssl":false,"system":false}`
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
test.SendHTTP(api, true, "POST", "/api/v0/projects/source/new", sourceStr)
test.TestRoute(t, api, true, "GET", "/api/v0/projects/source/info/fish", ``, 200, `{"sources":{"fish":`+sourceStr+`},"errors":[]}`)
test.TestRoute(t, api, true, "GET", "/api/v0/projects/source/info/fish?format=json", ``, 200, `{"sources":{"fish":`+sourceStr+`},"errors":[]}`)
@ -1472,13 +1370,9 @@ func TestSourcesInfo(t *testing.T) {
}
func TestSourcesInfoToml(t *testing.T) {
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
sourceStr := `{"name":"fish","type":"yum-baseurl","url":"https://download.opensuse.org/repositories/shells:/fish:/release:/3/Fedora_29/","check_gpg":false,"check_ssl":false,"system":false}`
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
test.SendHTTP(api, true, "POST", "/api/v0/projects/source/new", sourceStr)
req := httptest.NewRequest("GET", "/api/v0/projects/source/info/fish?format=toml", nil)
@ -1487,7 +1381,7 @@ func TestSourcesInfoToml(t *testing.T) {
resp := recorder.Result()
var sources map[string]store.SourceConfig
_, err = toml.DecodeReader(resp.Body, &sources)
_, err := toml.DecodeReader(resp.Body, &sources)
require.NoErrorf(t, err, "error decoding toml file")
expected := map[string]store.SourceConfig{
@ -1514,9 +1408,7 @@ func TestSourcesDelete(t *testing.T) {
{"DELETE", "/api/v0/projects/source/delete/unknown", ``, http.StatusBadRequest, `{"status":false,"errors":[{"id":"UnknownSource","msg":"unknown is not a valid source."}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
@ -1540,9 +1432,7 @@ func TestProjectsDepsolve(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/projects/depsolve/fish?distro=fedora-1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1567,9 +1457,7 @@ func TestProjectsInfo(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/projects/info/package16?distro=fedora-1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1596,9 +1484,7 @@ func TestModulesInfo(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v1/modules/info/package16?distro=fedora-1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1621,9 +1507,7 @@ func TestProjectsList(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/projects/list?distro=fedora-1&offset=1&limit=1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1649,9 +1533,7 @@ func TestModulesList(t *testing.T) {
{rpmmd_mock.BaseFixture, "/api/v0/modules/list/package2*,package16?distro=fedora-1&offset=1&limit=1", http.StatusBadRequest, `{"status":false,"errors":[{"id":"DistroError","msg":"Invalid distro: fedora-1"}]}`},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI(tempdir, c.Fixture)
@ -1729,9 +1611,7 @@ func TestComposeTypes_ImageTypeDenylist(t *testing.T) {
},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, _ := createWeldrAPI2(tempdir, rpmmd_mock.BaseFixture, c.ImageTypeDenylist)
@ -1891,9 +1771,7 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
},
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
api, s := createWeldrAPI2(tempdir, rpmmd_mock.NoComposesFixture, c.imageTypeDenylist)

View file

@ -3,7 +3,6 @@ package weldr
import (
"context"
"encoding/json"
"io/ioutil"
"os"
"testing"
@ -22,11 +21,7 @@ func TestComposeStatusFromLegacyError(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
@ -68,11 +63,7 @@ func TestComposeStatusFromJobError(t *testing.T) {
t.Skip("This test is for internal testing only")
}
tempdir, err := ioutil.TempDir("", "weldr-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
api, _ := createWeldrAPI(t.TempDir(), rpmmd_mock.BaseFixture)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)

View file

@ -4,10 +4,8 @@ import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"strings"
"testing"
"time"
@ -40,11 +38,7 @@ func newTestServer(t *testing.T, tempdir string, jobRequestTimeout time.Duration
// Ensure that the status request returns OK.
func TestStatus(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
test.TestRoute(t, handler, false, "GET", "/api/worker/v1/status", ``, http.StatusOK, `{"status":"OK", "href": "/api/worker/v1/status", "kind":"Status"}`, "message", "id")
}
@ -70,9 +64,7 @@ func TestErrors(t *testing.T) {
{"PATCH", "/api/worker/v1/jobs/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", `{"status":"FINISHED"}`, http.StatusNotFound},
}
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
@ -102,9 +94,7 @@ func TestErrorsAlteredBasePath(t *testing.T) {
{"PATCH", "/api/image-builder-worker/v1/jobs/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", `{"status":"FINISHED"}`, http.StatusNotFound},
}
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
for _, c := range cases {
server := newTestServer(t, tempdir, time.Duration(0), "/api/image-builder-worker/v1")
@ -114,10 +104,6 @@ func TestErrorsAlteredBasePath(t *testing.T) {
}
func TestCreate(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
@ -131,7 +117,7 @@ func TestCreate(t *testing.T) {
if err != nil {
t.Fatalf("error creating osbuild manifest: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
_, err = server.EnqueueOSBuild(arch.Name(), &worker.OSBuildJob{Manifest: manifest}, "")
@ -143,10 +129,6 @@ func TestCreate(t *testing.T) {
}
func TestCancel(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
@ -160,7 +142,7 @@ func TestCancel(t *testing.T) {
if err != nil {
t.Fatalf("error creating osbuild manifest: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
jobId, err := server.EnqueueOSBuild(arch.Name(), &worker.OSBuildJob{Manifest: manifest}, "")
@ -184,10 +166,6 @@ func TestCancel(t *testing.T) {
}
func TestUpdate(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
@ -201,7 +179,7 @@ func TestUpdate(t *testing.T) {
if err != nil {
t.Fatalf("error creating osbuild manifest: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
jobId, err := server.EnqueueOSBuild(arch.Name(), &worker.OSBuildJob{Manifest: manifest}, "")
@ -230,10 +208,7 @@ func TestArgs(t *testing.T) {
manifest, err := imageType.Manifest(nil, distro.ImageOptions{Size: imageType.Size(0)}, 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, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
job := worker.OSBuildJob{
Manifest: manifest,
@ -257,10 +232,6 @@ func TestArgs(t *testing.T) {
}
func TestUpload(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
@ -274,7 +245,7 @@ func TestUpload(t *testing.T) {
if err != nil {
t.Fatalf("error creating osbuild manifest: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
jobID, err := server.EnqueueOSBuild(arch.Name(), &worker.OSBuildJob{Manifest: manifest}, "")
@ -291,10 +262,6 @@ func TestUpload(t *testing.T) {
}
func TestUploadAlteredBasePath(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
@ -308,7 +275,7 @@ func TestUploadAlteredBasePath(t *testing.T) {
if err != nil {
t.Fatalf("error creating osbuild manifest: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/image-builder-worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/image-builder-worker/v1")
handler := server.Handler()
jobID, err := server.EnqueueOSBuild(arch.Name(), &worker.OSBuildJob{Manifest: manifest}, "")
@ -325,9 +292,7 @@ func TestUploadAlteredBasePath(t *testing.T) {
}
func TestOAuth(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
tempdir := t.TempDir()
q, err := fsjobqueue.New(tempdir)
require.NoError(t, err)
@ -414,16 +379,12 @@ func TestOAuth(t *testing.T) {
}
func TestTimeout(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
t.Fatalf("error getting arch from distro: %v", err)
}
server := newTestServer(t, tempdir, time.Millisecond*10, "/api/image-builder-worker/v1")
server := newTestServer(t, t.TempDir(), time.Millisecond*10, "/api/image-builder-worker/v1")
_, _, _, _, _, err = server.RequestJob(context.Background(), arch.Name(), []string{"osbuild"}, []string{""})
require.Equal(t, jobqueue.ErrDequeueTimeout, err)
@ -433,16 +394,12 @@ func TestTimeout(t *testing.T) {
}
func TestRequestJobById(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
t.Fatalf("error getting arch from distro: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
handler := server.Handler()
depsolveJobId, err := server.EnqueueDepsolve(&worker.DepsolveJob{}, "")
@ -481,12 +438,9 @@ func TestRequestJobById(t *testing.T) {
// for the new job.
func TestMixedOSBuildJob(t *testing.T) {
require := require.New(t)
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(err)
defer os.RemoveAll(tempdir)
emptyManifestV2 := distro.Manifest(`{"version":"2","pipelines":{}}`)
server := newTestServer(t, tempdir, time.Millisecond*10, "/")
server := newTestServer(t, t.TempDir(), time.Millisecond*10, "/")
fbPipelines := &worker.PipelineNames{Build: distro.BuildPipelinesFallback(), Payload: distro.PayloadPipelinesFallback()}
oldJob := worker.OSBuildJob{
@ -623,12 +577,9 @@ func TestMixedOSBuildJob(t *testing.T) {
// for the new job.
func TestMixedOSBuildKojiJob(t *testing.T) {
require := require.New(t)
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(err)
defer os.RemoveAll(tempdir)
emptyManifestV2 := distro.Manifest(`{"version":"2","pipelines":{}}`)
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
fbPipelines := &worker.PipelineNames{Build: distro.BuildPipelinesFallback(), Payload: distro.PayloadPipelinesFallback()}
enqueueKojiJob := func(job *worker.OSBuildKojiJob) uuid.UUID {
@ -656,7 +607,7 @@ func TestMixedOSBuildKojiJob(t *testing.T) {
newJobID := enqueueKojiJob(&newJob)
var oldJobRead worker.OSBuildKojiJob
err = server.OSBuildKojiJob(oldJobID, &oldJobRead)
err := server.OSBuildKojiJob(oldJobID, &oldJobRead)
require.NoError(err)
require.NotNil(oldJobRead.PipelineNames)
// OldJob gets default pipeline names when read
@ -779,16 +730,12 @@ func TestMixedOSBuildKojiJob(t *testing.T) {
}
func TestDepsolveLegacyErrorConversion(t *testing.T) {
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(t, err)
defer os.RemoveAll(tempdir)
distroStruct := test_distro.New()
arch, err := distroStruct.GetArch(test_distro.TestArchName)
if err != nil {
t.Fatalf("error getting arch from distro: %v", err)
}
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
depsolveJobId, err := server.EnqueueDepsolve(&worker.DepsolveJob{}, "")
require.NoError(t, err)
@ -822,12 +769,9 @@ func TestDepsolveLegacyErrorConversion(t *testing.T) {
// that both kinds of errors can be read back
func TestMixedOSBuildJobErrors(t *testing.T) {
require := require.New(t)
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(err)
defer os.RemoveAll(tempdir)
emptyManifestV2 := distro.Manifest(`{"version":"2","pipelines":{}}`)
server := newTestServer(t, tempdir, time.Millisecond*10, "/")
server := newTestServer(t, t.TempDir(), time.Millisecond*10, "/")
oldJob := worker.OSBuildJob{
Manifest: emptyManifestV2,
@ -929,12 +873,9 @@ func TestMixedOSBuildJobErrors(t *testing.T) {
// that both kinds of errors can be read back
func TestMixedOSBuildKojiJobErrors(t *testing.T) {
require := require.New(t)
tempdir, err := ioutil.TempDir("", "worker-tests-")
require.NoError(err)
defer os.RemoveAll(tempdir)
emptyManifestV2 := distro.Manifest(`{"version":"2","pipelines":{}}`)
server := newTestServer(t, tempdir, time.Duration(0), "/api/worker/v1")
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1")
enqueueKojiJob := func(job *worker.OSBuildKojiJob) uuid.UUID {
initJob := new(worker.KojiInitJob)
@ -961,7 +902,7 @@ func TestMixedOSBuildKojiJobErrors(t *testing.T) {
newJobID := enqueueKojiJob(&newJob)
oldJobRead := new(worker.OSBuildKojiJob)
err = server.OSBuildKojiJob(oldJobID, oldJobRead)
err := server.OSBuildKojiJob(oldJobID, oldJobRead)
require.NoError(err)
// Not entirely equal
require.NotEqual(oldJob, oldJobRead)