From 46ef29b9af458c6741b7976426247cf1c9f5498c Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Wed, 7 Aug 2024 14:59:13 -0500 Subject: [PATCH] Add test case --- tests/pytests/unit/utils/test_atomicfile.py | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/pytests/unit/utils/test_atomicfile.py diff --git a/tests/pytests/unit/utils/test_atomicfile.py b/tests/pytests/unit/utils/test_atomicfile.py new file mode 100644 index 00000000000..06dfd9a5b68 --- /dev/null +++ b/tests/pytests/unit/utils/test_atomicfile.py @@ -0,0 +1,27 @@ +""" +Tests for atomicfile utility module. +""" + +import pytest + +import salt.utils.files +from salt.utils.atomicfile import atomic_open + + +@pytest.mark.skip_on_windows(reason="Not a Windows test") +def test_atomicfile_respects_umask(tmp_path): + """ + Test that creating a file using atomic_open respects the umask, instead of + creating the file with 0600 perms. + """ + new_file = tmp_path / "foo" + contents = "bar" + + # Set the umask specifically for this test so that we know what the mode of + # the created file should be. + with salt.utils.files.set_umask(0o022): + with atomic_open(str(new_file), "w") as fh_: + fh_.write(contents) + + assert new_file.read_text() == contents + assert oct(new_file.stat().st_mode)[-3:] == "644"