From 7cac5f67eb0d586314f9e7c987b8a620e28eeac3 Mon Sep 17 00:00:00 2001 From: Victor Zhestkov Date: Mon, 27 Jun 2022 17:55:49 +0300 Subject: [PATCH] Ignore erros on reading license files with dpkg_lowpkg (bsc#1197288) * Ignore erros on reading license files with dpkg_lowpkg (bsc#1197288) * Add test for license reading with dpkg_lowpkg --- salt/modules/dpkg_lowpkg.py | 2 +- tests/pytests/unit/modules/test_dpkg_lowpkg.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 tests/pytests/unit/modules/test_dpkg_lowpkg.py diff --git a/salt/modules/dpkg_lowpkg.py b/salt/modules/dpkg_lowpkg.py index afbd619490..2c25b1fb2a 100644 --- a/salt/modules/dpkg_lowpkg.py +++ b/salt/modules/dpkg_lowpkg.py @@ -361,7 +361,7 @@ def _get_pkg_license(pkg): licenses = set() cpr = "/usr/share/doc/{}/copyright".format(pkg) if os.path.exists(cpr): - with salt.utils.files.fopen(cpr) as fp_: + with salt.utils.files.fopen(cpr, errors="ignore") as fp_: for line in salt.utils.stringutils.to_unicode(fp_.read()).split(os.linesep): if line.startswith("License:"): licenses.add(line.split(":", 1)[1].strip()) diff --git a/tests/pytests/unit/modules/test_dpkg_lowpkg.py b/tests/pytests/unit/modules/test_dpkg_lowpkg.py new file mode 100644 index 0000000000..1a89660c02 --- /dev/null +++ b/tests/pytests/unit/modules/test_dpkg_lowpkg.py @@ -0,0 +1,18 @@ +import os + +import salt.modules.dpkg_lowpkg as dpkg +from tests.support.mock import MagicMock, mock_open, patch + + +def test_get_pkg_license(): + """ + Test _get_pkg_license for ignore errors on reading license from copyright files + """ + license_read_mock = mock_open(read_data="") + with patch.object(os.path, "exists", MagicMock(return_value=True)), patch( + "salt.utils.files.fopen", license_read_mock + ): + dpkg._get_pkg_license("bash") + + assert license_read_mock.calls[0].args[0] == "/usr/share/doc/bash/copyright" + assert license_read_mock.calls[0].kwargs["errors"] == "ignore" -- 2.37.3