123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- Tests for the cron state
- """
- import logging
- import subprocess
- import pytest
- import salt.utils.platform
- from tests.support.helpers import slowTest
- log = logging.getLogger(__name__)
- @pytest.fixture
- def cron_account():
- with pytest.helpers.create_account() as system_account:
- try:
- yield system_account
- finally:
- command = ["crontab", "-u", system_account.username, "-r"]
- if salt.utils.platform.is_freebsd():
- command.append("-f")
- subprocess.run(command, check=False)
- @slowTest
- @pytest.mark.skip_on_windows
- @pytest.mark.skip_if_not_root
- @pytest.mark.skip_if_binaries_missing("crontab")
- def test_managed(cron_account, salt_cli, salt_minion, base_env_state_tree_root_dir):
- """
- file.managed
- """
- cron_contents = "# Lines below here are managed by Salt, do not edit\n@hourly touch /tmp/test-file\n"
- expected = "--- \n+++ \n@@ -1 +1,2 @@\n-\n+# Lines below here are managed by Salt, do not edit\n+@hourly touch /tmp/test-file\n"
- with pytest.helpers.temp_file(
- "issue-46881/cron", cron_contents, base_env_state_tree_root_dir
- ):
- ret = salt_cli.run(
- "state.single",
- "cron.file",
- name="salt://issue-46881/cron",
- user=cron_account.username,
- minion_tgt=salt_minion.id,
- )
- assert ret.exitcode == 0, ret
- state = ret.json["cron_|-salt://issue-46881/cron_|-salt://issue-46881/cron_|-file"]
- assert "changes" in state
- assert "diff" in state["changes"]
- assert state["changes"]["diff"] == expected
|