diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-05-02 22:37:26 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-05-02 22:37:26 +0200 |
| commit | fc023fb7387772b70496d24449e301cd856634ff (patch) | |
| tree | 2f48bbe0abea40586de9679d229da9e3666357a2 /tests/bulk_delete_test.go | |
| parent | 714ac4546a1378fec6fbec94096c6ec315214081 (diff) | |
| download | go-schwift-fc023fb7387772b70496d24449e301cd856634ff.tar.gz | |
test coverage for bulk-delete fallback code path
Diffstat (limited to 'tests/bulk_delete_test.go')
| -rw-r--r-- | tests/bulk_delete_test.go | 81 |
1 files changed, 49 insertions, 32 deletions
diff --git a/tests/bulk_delete_test.go b/tests/bulk_delete_test.go index dfe8468..472feb8 100644 --- a/tests/bulk_delete_test.go +++ b/tests/bulk_delete_test.go @@ -24,52 +24,62 @@ import ( "testing" "github.com/majewsky/schwift" + "github.com/majewsky/schwift/capabilities" ) func TestBulkDeleteSuccess(t *testing.T) { testWithAccount(t, func(a *schwift.Account) { - c, err := a.Container("schwift-test-bulkdelete").EnsureExists() - expectSuccess(t, err) - objs, err := createTestObjects(c) - expectSuccess(t, err) + testWithAndWithoutBulkDeleteSupport(func() { + c, err := a.Container("schwift-test-bulkdelete").EnsureExists() + expectSuccess(t, err) + objs, err := createTestObjects(c) + expectSuccess(t, err) - numDeleted, numNotFound, err := c.Account().BulkDelete(objs, nil, nil) - expectSuccess(t, err) - expectInt(t, numDeleted, len(objs)) - expectInt(t, numNotFound, 0) - expectContainerExistence(t, c, true) + numDeleted, numNotFound, err := c.Account().BulkDelete(objs, nil, nil) + expectSuccess(t, err) + expectInt(t, numDeleted, len(objs)) + expectInt(t, numNotFound, 0) + expectContainerExistence(t, c, true) - numDeleted, numNotFound, err = c.Account().BulkDelete(objs, nil, nil) - expectSuccess(t, err) - expectInt(t, numDeleted, 0) - expectInt(t, numNotFound, len(objs)) - expectContainerExistence(t, c, true) + numDeleted, numNotFound, err = c.Account().BulkDelete(objs, nil, nil) + expectSuccess(t, err) + expectInt(t, numDeleted, 0) + expectInt(t, numNotFound, len(objs)) + expectContainerExistence(t, c, true) - objs, err = createTestObjects(c) - expectSuccess(t, err) - cs := []*schwift.Container{c} + objs, err = createTestObjects(c) + expectSuccess(t, err) + cs := []*schwift.Container{c} - numDeleted, numNotFound, err = c.Account().BulkDelete(objs, cs, nil) - expectSuccess(t, err) - expectInt(t, numDeleted, len(objs)+1) - expectInt(t, numNotFound, 0) - expectContainerExistence(t, c, false) + numDeleted, numNotFound, err = c.Account().BulkDelete(objs, cs, nil) + expectSuccess(t, err) + expectInt(t, numDeleted, len(objs)+1) + expectInt(t, numNotFound, 0) + expectContainerExistence(t, c, false) + }) }) } func TestBulkDeleteError(t *testing.T) { testWithContainer(t, func(c *schwift.Container) { - objs, err := createTestObjects(c) - expectSuccess(t, err) - objs = objs[1:] - cs := []*schwift.Container{c} + testWithAndWithoutBulkDeleteSupport(func() { + objs, err := createTestObjects(c) + expectSuccess(t, err) + objs = objs[1:] + cs := []*schwift.Container{c} - //not deleting all objects should lead to 409 Conflict when deleting the Container - numDeleted, numNotFound, err := c.Account().BulkDelete(objs, cs, nil) - expectInt(t, numDeleted, len(objs)) - expectInt(t, numNotFound, 0) - expectError(t, err, "400 Bad Request (+1 object errors)") - expectContainerExistence(t, c, true) + //not deleting all objects should lead to 409 Conflict when deleting the Container + //(NOTE: actual Swift returns 400 here although I don't understand why + //even after reading its code) + numDeleted, numNotFound, err := c.Account().BulkDelete(objs, cs, nil) + expectInt(t, numDeleted, len(objs)) + expectInt(t, numNotFound, 0) + t.Logf("err = %#v\n", err) + if err.Error() != "400 Bad Request (+1 object errors)" { + expectError(t, err, "409 Conflict: Conflict (+1 object errors)") + } + expectContainerExistence(t, c, true) + }) }) } @@ -85,3 +95,10 @@ func createTestObjects(c *schwift.Container) ([]*schwift.Object, error) { } return objs, nil } + +func testWithAndWithoutBulkDeleteSupport(action func()) { + capabilities.AllowBulkDelete = false + action() + capabilities.AllowBulkDelete = true + action() +} |
