Skip to content

Commit

Permalink
add test of delete command with and without sudo
Browse files Browse the repository at this point in the history
  • Loading branch information
umputun committed May 8, 2023
1 parent 0307fb7 commit bfe5bbb
Showing 1 changed file with 62 additions and 1 deletion.
63 changes: 62 additions & 1 deletion pkg/runner/runner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ func TestProcess_RunTaskWithWait(t *testing.T) {
assert.Contains(t, buf.String(), "wait done")
}

func TestProcess_execWaitCommand(t *testing.T) {
func TestProcess_execCommands(t *testing.T) {
testingHostAndPort, teardown := startTestContainer(t)
defer teardown()

Expand Down Expand Up @@ -499,6 +499,67 @@ func TestProcess_execWaitCommand(t *testing.T) {
CheckDuration: time.Millisecond * 100}, Options: config.CmdOptions{Sudo: true}}})
require.EqualError(t, err, "timeout exceeded")
})

t.Run("delete a single file", func(t *testing.T) {
p := Process{Connector: connector}
_, err := sess.Run(ctx, "touch /tmp/delete.me", true)
require.NoError(t, err)

_, err = p.execDeleteCommand(ctx, execCmdParams{exec: sess, tsk: &config.Task{Name: "test"},
cmd: config.Cmd{Delete: config.DeleteInternal{Location: "/tmp/delete.me"}}})
require.NoError(t, err)
})

t.Run("delete files recursive", func(t *testing.T) {
p := Process{Connector: connector}
var err error
_, err = sess.Run(ctx, "mkdir -p /tmp/delete-recursive", true)
require.NoError(t, err)
_, err = sess.Run(ctx, "touch /tmp/delete-recursive/delete1.me", true)
require.NoError(t, err)
_, err = sess.Run(ctx, "touch /tmp/delete-recursive/delete2.me", true)
require.NoError(t, err)

_, err = p.execDeleteCommand(ctx, execCmdParams{exec: sess, tsk: &config.Task{Name: "test"},
cmd: config.Cmd{Delete: config.DeleteInternal{Location: "/tmp/delete-recursive", Recursive: true}}})
require.NoError(t, err)

_, err = sess.Run(ctx, "ls /tmp/delete-recursive", true)
require.Error(t, err, "should not exist")
})

t.Run("delete file with sudo", func(t *testing.T) {
p := Process{Connector: connector}
_, err := sess.Run(ctx, "sudo touch /srv/delete.me", true)
require.NoError(t, err)

_, err = p.execDeleteCommand(ctx, execCmdParams{exec: sess, tsk: &config.Task{Name: "test"},
cmd: config.Cmd{Delete: config.DeleteInternal{Location: "/srv/delete.me"}}})
require.Error(t, err, "should fail because of missing sudo")

_, err = p.execDeleteCommand(ctx, execCmdParams{exec: sess, tsk: &config.Task{Name: "test"},
cmd: config.Cmd{Delete: config.DeleteInternal{Location: "/srv/delete.me"}, Options: config.CmdOptions{Sudo: true}}})
require.NoError(t, err, "should fail pass with sudo")
})

t.Run("delete files recursive with sudo", func(t *testing.T) {
p := Process{Connector: connector}
var err error
_, err = sess.Run(ctx, "sudo mkdir -p /srv/delete-recursive", true)
require.NoError(t, err)
_, err = sess.Run(ctx, "sudo touch /srv/delete-recursive/delete1.me", true)
require.NoError(t, err)
_, err = sess.Run(ctx, "sudo touch /srv/delete-recursive/delete2.me", true)
require.NoError(t, err)

_, err = p.execDeleteCommand(ctx, execCmdParams{exec: sess, tsk: &config.Task{Name: "test"},
cmd: config.Cmd{Delete: config.DeleteInternal{Location: "/srv/delete-recursive", Recursive: true},
Options: config.CmdOptions{Sudo: true}}})
require.NoError(t, err)

_, err = sess.Run(ctx, "ls /srv/delete-recursive", true)
require.Error(t, err, "should not exist")
})
}

func TestProcess_applyTemplates(t *testing.T) {
Expand Down

0 comments on commit bfe5bbb

Please sign in to comment.