diff --git a/library/scan_sudoers.py b/library/scan_sudoers.py index fb5e1b4d..2c048f11 100644 --- a/library/scan_sudoers.py +++ b/library/scan_sudoers.py @@ -168,6 +168,8 @@ def get_includes(path): def get_config_lines(path, params): # Read sudoers file + if not isfile(path): + return {} fp = open(path, "r") all_lines = fp.read() fp.close() diff --git a/meta/collection-requirements.yml b/meta/collection-requirements.yml index 78f93d31..fd235bd7 100644 --- a/meta/collection-requirements.yml +++ b/meta/collection-requirements.yml @@ -2,3 +2,5 @@ --- collections: - name: ansible.posix + - name: community.general + version: ">=6.6.0,<12.0.0" diff --git a/meta/main.yml b/meta/main.yml index b6f5484c..7395d779 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -19,6 +19,7 @@ galaxy_info: - el9 - el10 - fedora + - leap - container - containerbuild dependencies: [] diff --git a/tests/unit/test_scan_sudoers.py b/tests/unit/test_scan_sudoers.py index db13710e..40862203 100644 --- a/tests/unit/test_scan_sudoers.py +++ b/tests/unit/test_scan_sudoers.py @@ -334,7 +334,8 @@ def test_get_user_specs15(self): "scan_sudoers.get_includes", return_value={"include_files": ["/etc/sudoers.d/file1"]}, ) - def test_get_config_lines01(self, mock_open, mock_get_includes): + @patch("scan_sudoers.isfile", return_value=True) + def test_get_config_lines01(self, mock_isfile, mock_open, mock_get_includes): # Arrange params = {"output_raw_configs": True, "output_parsed_configs": True} @@ -395,7 +396,8 @@ def test_get_config_lines01(self, mock_open, mock_get_includes): "scan_sudoers.get_includes", return_value={"include_files": ["/etc/sudoers.d/file1"]}, ) - def test_get_config_lines02(self, mock_open, mock_get_includes): + @patch("scan_sudoers.isfile", return_value=True) + def test_get_config_lines02(self, mock_isfile, mock_open, mock_get_includes): # Arrange params = {"output_raw_configs": True, "output_parsed_configs": True} expected_output = {