From 8f8cccc92ec4de0ea3a044111da7a5e2faace95e Mon Sep 17 00:00:00 2001
From: shixuantong <shixuantong1@huawei.com>
Date: Wed, 26 Feb 2025 09:03:46 +0800
Subject: [PATCH] skip test_ntp_custom_client_overrides_installed_clients if
 the build user does not have the root permission

error info:
tests/unittests/config/test_cc_ntp.py:598:
-------------------------------------------------------------
cloudinit/config/cc_ntp.py:561:in handle
rename_ntp_conf(confpath=ntp_client_config.get("confpath"))
cloudinit/config/cc_ntp.py:357: in rename_ntp_conf
util.rename(confpath, confpath + ".dist")
-------------------------------------------------------------
src = '/etc/ntp.conf', dest = '/etc/ntp.conf.dist'

def rename(src, dest):
    LOG.debug("Renaming %s to %s", src, dest)
    # TODO(harlowja) use a se guard here??
> os.rename(src, dest)
E PermissionError: [Errno 13] Permission denied: '/etc/ntp.conf' -> '/etc/ntp.conf.dist'

cloudinit/util.py:1834: PermissionError
---
 tests/unittests/config/test_cc_ntp.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/unittests/config/test_cc_ntp.py b/tests/unittests/config/test_cc_ntp.py
index c28da73..db6db52 100644
--- a/tests/unittests/config/test_cc_ntp.py
+++ b/tests/unittests/config/test_cc_ntp.py
@@ -577,6 +577,7 @@ class TestNtp:
             m_which.assert_has_calls(expected_calls)
             assert sorted(expected_cfg) == sorted(cfg)
 
+    @pytest.mark.skipif(os.geteuid() != 0, reason = "the root permission is required")
     @mock.patch("cloudinit.config.cc_ntp.write_ntp_config_template")
     @mock.patch("cloudinit.cloud.Cloud.get_template_filename")
     @mock.patch("cloudinit.config.cc_ntp.subp.which")
-- 
2.27.0