From 795d4941eeeaef81ed2178dfdd1e56cdbbcea52b Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Wed, 13 Mar 2024 07:47:54 -0400 Subject: [PATCH] chore: rename test files --- tests/unit/git_6.bats | 289 ++++++++++++++++++++++++++++++++++++++++++ tests/unit/git_7.bats | 280 +++------------------------------------- tests/unit/git_8.bats | 51 -------- 3 files changed, 310 insertions(+), 310 deletions(-) create mode 100644 tests/unit/git_6.bats delete mode 100644 tests/unit/git_8.bats diff --git a/tests/unit/git_6.bats b/tests/unit/git_6.bats new file mode 100644 index 000000000..03c81f264 --- /dev/null +++ b/tests/unit/git_6.bats @@ -0,0 +1,289 @@ +#!/usr/bin/env bats + +load test_helper + +setup() { + global_setup + create_app + touch /home/dokku/.ssh/known_hosts + chown dokku:dokku /home/dokku/.ssh/known_hosts +} + +teardown() { + docker image rm linuxserver/foldingathome:7.6.21 || true + docker image rm dokku/node-js-getting-started:latest || true + docker image rm dokku-test/$TEST_APP:latest || true + docker image rm dokku-test/$TEST_APP:v2 || true + docker image rm gliderlabs/logspout:v3.2.13 || true + rm -f /tmp/image.tar /tmp/image-2.tar + rm -f /home/dokku/.ssh/id_rsa.pub || true + destroy_app + global_teardown +} + +@test "(git) git:load-image [normal]" { + run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success +} + +@test "(git) git:load-image [normal-git-init]" { + run rm -rf "/home/dokku/$TEST_APP" + echo "output: $output" + echo "status: $status" + assert_success + + run mkdir "/home/dokku/$TEST_APP" + echo "output: $output" + echo "status: $status" + assert_success + + run chown -R dokku:dokku "/home/dokku/$TEST_APP" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success +} + +@test "(git) git:load-image [normal-cnb]" { + run /bin/bash -c "docker image pull dokku/node-js-getting-started:latest" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar dokku/node-js-getting-started:latest" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm dokku/node-js-getting-started:latest" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku/node-js-getting-started:latest" + echo "output: $output" + echo "status: $status" + assert_success +} + +@test "(git) git:load-image [failing deploy]" { + local CUSTOM_TMP=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX") + trap 'popd &>/dev/null || true; rm -rf "$CUSTOM_TMP"' INT TERM + rmdir "$CUSTOM_TMP" && cp -r "${BATS_TEST_DIRNAME}/../../tests/apps/python" "$CUSTOM_TMP" + + run /bin/bash -c "docker image build -t dokku-test/$TEST_APP:latest -f $CUSTOM_TMP/alt.Dockerfile $CUSTOM_TMP" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image build -t dokku-test/$TEST_APP:v2 --build-arg BUILD_ARG=value -f $CUSTOM_TMP/alt.Dockerfile $CUSTOM_TMP" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar dokku-test/$TEST_APP:latest" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image-2.tar dokku-test/$TEST_APP:v2" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm dokku-test/$TEST_APP:latest dokku-test/$TEST_APP:v2" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=true" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:latest" + echo "output: $output" + echo "status: $status" + assert_failure + + run /bin/bash -c "dokku config:get $TEST_APP FAIL_ON_STARTUP" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "true" + + run /bin/bash -c "dokku git:status $TEST_APP" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output "fatal: this operation must be run in a work tree" + + run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=false" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:latest" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=true" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image-2.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:v2" + echo "output: $output" + echo "status: $status" + assert_failure + + run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=false" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image-2.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:v2" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "No changes detected, skipping git commit" 0 +} + +@test "(git) git:load-image [onbuild]" { + local TMP=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX") + trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM + + run /bin/bash -c "dokku storage:mount $TEST_APP /var/run/docker.sock:/var/run/docker.sock" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image pull gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_failure + + cat <"$TMP/build.sh" +#!/bin/sh +set -e +apk add --update go build-base git mercurial ca-certificates +cd /src +go build -ldflags "-X main.Version=\$1" -o /bin/logspout +apk del go git mercurial build-base +rm -rf /root/go /var/cache/apk/* + +# backwards compatibility +ln -fs /tmp/docker.sock /var/run/docker.sock +EOF + + cat <"$TMP/modules.go" +package main + +import ( + _ "github.com/gliderlabs/logspout/adapters/multiline" + _ "github.com/gliderlabs/logspout/adapters/raw" + _ "github.com/gliderlabs/logspout/adapters/syslog" + _ "github.com/gliderlabs/logspout/healthcheck" + _ "github.com/gliderlabs/logspout/httpstream" + _ "github.com/gliderlabs/logspout/routesapi" + _ "github.com/gliderlabs/logspout/transports/tcp" + _ "github.com/gliderlabs/logspout/transports/tls" + _ "github.com/gliderlabs/logspout/transports/udp" +) +EOF + + run sudo chown -R dokku:dokku "$TMP" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image --build-dir $TMP $TEST_APP gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP gliderlabs/logspout:v3.2.13" + echo "output: $output" + echo "status: $status" + assert_failure +} + +@test "(git) git:load-image labels correctly" { + run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker image inspect dokku/$TEST_APP:latest --format '{{ index .Config.Labels \"com.dokku.docker-image-labeler/alternate-tags\" }}'" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "linuxserver/foldingathome:7.6.21" +} diff --git a/tests/unit/git_7.bats b/tests/unit/git_7.bats index 03c81f264..be9ae8888 100644 --- a/tests/unit/git_7.bats +++ b/tests/unit/git_7.bats @@ -2,288 +2,50 @@ load test_helper +TEST_PLUGIN_APP=smoke-test-app +TEST_PLUGIN_GIT_REPO=https://github.com/dokku/${TEST_PLUGIN_APP}.git +TEST_PLUGIN_LOCAL_REPO="$(mktemp -d)/$TEST_PLUGIN_APP" + +clone_test_app() { + git clone "$TEST_PLUGIN_GIT_REPO" "$TEST_PLUGIN_LOCAL_REPO" +} + +remove_test_app() { + rm -rf $TEST_PLUGIN_LOCAL_REPO +} + setup() { global_setup create_app - touch /home/dokku/.ssh/known_hosts - chown dokku:dokku /home/dokku/.ssh/known_hosts + clone_test_app } teardown() { - docker image rm linuxserver/foldingathome:7.6.21 || true - docker image rm dokku/node-js-getting-started:latest || true - docker image rm dokku-test/$TEST_APP:latest || true - docker image rm dokku-test/$TEST_APP:v2 || true - docker image rm gliderlabs/logspout:v3.2.13 || true - rm -f /tmp/image.tar /tmp/image-2.tar - rm -f /home/dokku/.ssh/id_rsa.pub || true + remove_test_app || true destroy_app global_teardown } -@test "(git) git:load-image [normal]" { - run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" +@test "(git) push tags and branches" { + # https://github.com/dokku/dokku/issues/5188 + local GIT_REMOTE=${GIT_REMOTE:="dokku@${DOKKU_DOMAIN}:$TEST_APP"} + run git -C "$TEST_PLUGIN_LOCAL_REPO" remote add target "$GIT_REMOTE" echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" + run git -C "$TEST_PLUGIN_LOCAL_REPO" push target 1.0.0:master echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" + run git -C "$TEST_PLUGIN_LOCAL_REPO" push target 2.0.0:master -f echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" + run git -C "$TEST_PLUGIN_LOCAL_REPO" push target master -f echo "output: $output" echo "status: $status" assert_success } - -@test "(git) git:load-image [normal-git-init]" { - run rm -rf "/home/dokku/$TEST_APP" - echo "output: $output" - echo "status: $status" - assert_success - - run mkdir "/home/dokku/$TEST_APP" - echo "output: $output" - echo "status: $status" - assert_success - - run chown -R dokku:dokku "/home/dokku/$TEST_APP" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success -} - -@test "(git) git:load-image [normal-cnb]" { - run /bin/bash -c "docker image pull dokku/node-js-getting-started:latest" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image.tar dokku/node-js-getting-started:latest" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image rm dokku/node-js-getting-started:latest" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku/node-js-getting-started:latest" - echo "output: $output" - echo "status: $status" - assert_success -} - -@test "(git) git:load-image [failing deploy]" { - local CUSTOM_TMP=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX") - trap 'popd &>/dev/null || true; rm -rf "$CUSTOM_TMP"' INT TERM - rmdir "$CUSTOM_TMP" && cp -r "${BATS_TEST_DIRNAME}/../../tests/apps/python" "$CUSTOM_TMP" - - run /bin/bash -c "docker image build -t dokku-test/$TEST_APP:latest -f $CUSTOM_TMP/alt.Dockerfile $CUSTOM_TMP" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image build -t dokku-test/$TEST_APP:v2 --build-arg BUILD_ARG=value -f $CUSTOM_TMP/alt.Dockerfile $CUSTOM_TMP" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image.tar dokku-test/$TEST_APP:latest" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image-2.tar dokku-test/$TEST_APP:v2" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image rm dokku-test/$TEST_APP:latest dokku-test/$TEST_APP:v2" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=true" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:latest" - echo "output: $output" - echo "status: $status" - assert_failure - - run /bin/bash -c "dokku config:get $TEST_APP FAIL_ON_STARTUP" - echo "output: $output" - echo "status: $status" - assert_success - assert_output "true" - - run /bin/bash -c "dokku git:status $TEST_APP" - echo "output: $output" - echo "status: $status" - assert_failure - assert_output "fatal: this operation must be run in a work tree" - - run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=false" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:latest" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=true" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image-2.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:v2" - echo "output: $output" - echo "status: $status" - assert_failure - - run /bin/bash -c "dokku config:set --no-restart $TEST_APP FAIL_ON_STARTUP=false" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image-2.tar | dokku git:load-image $TEST_APP dokku-test/$TEST_APP:v2" - echo "output: $output" - echo "status: $status" - assert_success - assert_output_contains "No changes detected, skipping git commit" 0 -} - -@test "(git) git:load-image [onbuild]" { - local TMP=$(mktemp -d "/tmp/${DOKKU_DOMAIN}.XXXXX") - trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM - - run /bin/bash -c "dokku storage:mount $TEST_APP /var/run/docker.sock:/var/run/docker.sock" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image pull gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image.tar gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image rm gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_failure - - cat <"$TMP/build.sh" -#!/bin/sh -set -e -apk add --update go build-base git mercurial ca-certificates -cd /src -go build -ldflags "-X main.Version=\$1" -o /bin/logspout -apk del go git mercurial build-base -rm -rf /root/go /var/cache/apk/* - -# backwards compatibility -ln -fs /tmp/docker.sock /var/run/docker.sock -EOF - - cat <"$TMP/modules.go" -package main - -import ( - _ "github.com/gliderlabs/logspout/adapters/multiline" - _ "github.com/gliderlabs/logspout/adapters/raw" - _ "github.com/gliderlabs/logspout/adapters/syslog" - _ "github.com/gliderlabs/logspout/healthcheck" - _ "github.com/gliderlabs/logspout/httpstream" - _ "github.com/gliderlabs/logspout/routesapi" - _ "github.com/gliderlabs/logspout/transports/tcp" - _ "github.com/gliderlabs/logspout/transports/tls" - _ "github.com/gliderlabs/logspout/transports/udp" -) -EOF - - run sudo chown -R dokku:dokku "$TMP" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image --build-dir $TMP $TEST_APP gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP gliderlabs/logspout:v3.2.13" - echo "output: $output" - echo "status: $status" - assert_failure -} - -@test "(git) git:load-image labels correctly" { - run /bin/bash -c "docker image pull linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image save -o /tmp/image.tar linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image rm linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "cat /tmp/image.tar | dokku git:load-image $TEST_APP linuxserver/foldingathome:7.6.21" - echo "output: $output" - echo "status: $status" - assert_success - - run /bin/bash -c "docker image inspect dokku/$TEST_APP:latest --format '{{ index .Config.Labels \"com.dokku.docker-image-labeler/alternate-tags\" }}'" - echo "output: $output" - echo "status: $status" - assert_success - assert_output_contains "linuxserver/foldingathome:7.6.21" -} diff --git a/tests/unit/git_8.bats b/tests/unit/git_8.bats deleted file mode 100644 index be9ae8888..000000000 --- a/tests/unit/git_8.bats +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bats - -load test_helper - -TEST_PLUGIN_APP=smoke-test-app -TEST_PLUGIN_GIT_REPO=https://github.com/dokku/${TEST_PLUGIN_APP}.git -TEST_PLUGIN_LOCAL_REPO="$(mktemp -d)/$TEST_PLUGIN_APP" - -clone_test_app() { - git clone "$TEST_PLUGIN_GIT_REPO" "$TEST_PLUGIN_LOCAL_REPO" -} - -remove_test_app() { - rm -rf $TEST_PLUGIN_LOCAL_REPO -} - -setup() { - global_setup - create_app - clone_test_app -} - -teardown() { - remove_test_app || true - destroy_app - global_teardown -} - -@test "(git) push tags and branches" { - # https://github.com/dokku/dokku/issues/5188 - local GIT_REMOTE=${GIT_REMOTE:="dokku@${DOKKU_DOMAIN}:$TEST_APP"} - run git -C "$TEST_PLUGIN_LOCAL_REPO" remote add target "$GIT_REMOTE" - echo "output: $output" - echo "status: $status" - assert_success - - run git -C "$TEST_PLUGIN_LOCAL_REPO" push target 1.0.0:master - echo "output: $output" - echo "status: $status" - assert_success - - run git -C "$TEST_PLUGIN_LOCAL_REPO" push target 2.0.0:master -f - echo "output: $output" - echo "status: $status" - assert_success - - run git -C "$TEST_PLUGIN_LOCAL_REPO" push target master -f - echo "output: $output" - echo "status: $status" - assert_success -}