summaryrefslogtreecommitdiff
path: root/tests/integration_tests/test_shell_script_by_frequency.py
diff options
context:
space:
mode:
authorzsdc <taras@vyos.io>2022-03-25 20:58:01 +0200
committerzsdc <taras@vyos.io>2022-03-25 21:42:00 +0200
commit31448cccedd8f841fb3ac7d0f2e3cdefe08a53ba (patch)
tree349631a02467dae0158f6f663cc8aa8537974a97 /tests/integration_tests/test_shell_script_by_frequency.py
parent5c4b3943343a85fbe517e5ec1fc670b3a8566b4b (diff)
parent8537237d80a48c8f0cbf8e66aa4826bbc882b022 (diff)
downloadvyos-cloud-init-31448cccedd8f841fb3ac7d0f2e3cdefe08a53ba.tar.gz
vyos-cloud-init-31448cccedd8f841fb3ac7d0f2e3cdefe08a53ba.zip
T2117: Cloud-init updated to 22.1
Merged with 22.1 tag from the upstream Cloud-init repository. Our modules were slightly modified for compatibility with the new version.
Diffstat (limited to 'tests/integration_tests/test_shell_script_by_frequency.py')
-rw-r--r--tests/integration_tests/test_shell_script_by_frequency.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/integration_tests/test_shell_script_by_frequency.py b/tests/integration_tests/test_shell_script_by_frequency.py
new file mode 100644
index 00000000..25157722
--- /dev/null
+++ b/tests/integration_tests/test_shell_script_by_frequency.py
@@ -0,0 +1,48 @@
+"""Integration tests for various handlers."""
+
+from io import StringIO
+
+import pytest
+
+from cloudinit.cmd.devel.make_mime import create_mime_message
+from tests.integration_tests.instances import IntegrationInstance
+
+PER_FREQ_TEMPLATE = """\
+#!/bin/bash
+touch /tmp/test_per_freq_{}
+"""
+
+PER_ALWAYS_FILE = StringIO(PER_FREQ_TEMPLATE.format("always"))
+PER_INSTANCE_FILE = StringIO(PER_FREQ_TEMPLATE.format("instance"))
+PER_ONCE_FILE = StringIO(PER_FREQ_TEMPLATE.format("once"))
+
+FILES = [
+ (PER_ALWAYS_FILE, "always.sh", "x-shellscript-per-boot"),
+ (PER_INSTANCE_FILE, "instance.sh", "x-shellscript-per-instance"),
+ (PER_ONCE_FILE, "once.sh", "x-shellscript-per-once"),
+]
+
+USER_DATA, errors = create_mime_message(FILES)
+
+
+@pytest.mark.ci
+@pytest.mark.user_data(USER_DATA)
+def test_per_freq(client: IntegrationInstance):
+ # Sanity test for scripts folder
+ cmd = "test -d /var/lib/cloud/scripts"
+ assert client.execute(cmd).ok
+ # Test per-boot
+ cmd = "test -f /var/lib/cloud/scripts/per-boot/always.sh"
+ assert client.execute(cmd).ok
+ cmd = "test -f /tmp/test_per_freq_always"
+ assert client.execute(cmd).ok
+ # Test per-instance
+ cmd = "test -f /var/lib/cloud/scripts/per-instance/instance.sh"
+ assert client.execute(cmd).ok
+ cmd = "test -f /tmp/test_per_freq_instance"
+ assert client.execute(cmd).ok
+ # Test per-once
+ cmd = "test -f /var/lib/cloud/scripts/per-once/once.sh"
+ assert client.execute(cmd).ok
+ cmd = "test -f /tmp/test_per_freq_once"
+ assert client.execute(cmd).ok