未验证 提交 9f5adb0c 编写于 作者: C Caio Carrara

Merge remote-tracking branch 'clebergnu/software_manager_misc'

Signed-off-by: NCaio Carrara <ccarrara@redhat.com>
......@@ -313,8 +313,9 @@ class DebianProbe(Probe):
"""
Simple probe with file checks for Debian systems
"""
CHECK_FILE = '/etc/debian-version'
CHECK_FILE = '/etc/debian_version'
CHECK_FILE_DISTRO_NAME = 'debian'
CHECK_VERSION_REGEX = re.compile(r'(\d+)\.(\d+)')
class UbuntuProbe(Probe):
......
......@@ -261,7 +261,7 @@ class RpmBackend(BaseBackend):
cmd_result = process.run('rpm -qa | sort', verbose=False,
shell=True)
out = cmd_result.stdout.strip()
out = cmd_result.stdout_text.strip()
installed_packages = out.splitlines()
return installed_packages
......@@ -349,7 +349,7 @@ class DpkgBackend(BaseBackend):
name = process.system_output(n_cmd)
i_cmd = self.lowlevel_base_cmd + " -s " + name
# Checking if package is installed
package_status = process.system_output(i_cmd, ignore_status=True)
package_status = process.run(i_cmd, ignore_status=True).stdout_text
dpkg_installed = (self.INSTALLED_OUTPUT in package_status)
if dpkg_installed:
return True
......@@ -362,7 +362,7 @@ class DpkgBackend(BaseBackend):
log.debug("Listing all system packages (may take a while)")
installed_packages = []
cmd_result = process.run('dpkg -l', verbose=False)
out = cmd_result.stdout.strip()
out = cmd_result.stdout_text.strip()
raw_list = out.splitlines()[5:]
for line in raw_list:
parts = line.split()
......@@ -658,7 +658,7 @@ class ZypperBackend(RpmBackend):
z_cmd = self.base_command + ' --version'
cmd_result = process.run(z_cmd, ignore_status=True,
verbose=False)
out = cmd_result.stdout.strip()
out = cmd_result.stdout_text.strip()
try:
ver = re.findall(r'\d.\d*.\d*', out)[0]
except IndexError:
......@@ -837,7 +837,7 @@ class AptBackend(DpkgBackend):
ignore_status=True,
verbose=False,
shell=True)
out = cmd_result.stdout.strip()
out = cmd_result.stdout_text.strip()
try:
ver = re.findall(r'\d\S*', out)[0]
except IndexError:
......@@ -983,15 +983,14 @@ class AptBackend(DpkgBackend):
except utils_path.CmdNotFoundError:
self.install('apt-file')
command = utils_path.find_command('apt-file')
cache_update_cmd = command + ' update'
try:
process.system(cache_update_cmd, ignore_status=True)
process.run(command + ' update')
except process.CmdError:
log.error("Apt file cache update failed")
fu_cmd = command + ' search ' + name
try:
paths = filter(None, os.environ['PATH'].split(':'))
provides = filter(None, process.system_output(fu_cmd).split('\n'))
provides = filter(None, process.run(fu_cmd).stdout_text.split('\n'))
list_provides = []
for each_path in paths:
for line in provides:
......
import os
import unittest
from avocado.utils import distro
from avocado.utils import software_manager
def apt_supported_distro():
"""
The only Linux distributions this was tested on
"""
this = distro.detect()
if this.name == 'debian':
return this.version == '9' and this.release == '6'
elif this.name == 'Ubuntu':
return this.version == '18' and this.release == '04'
return False
@unittest.skipUnless(os.getuid() == 0, "This test requires root privileges")
@unittest.skipUnless(apt_supported_distro(), "Unsupported distro")
class Apt(unittest.TestCase):
def test_provides(self):
sm = software_manager.SoftwareManager()
self.assertEqual(sm.provides('/bin/login'), 'login')
self.assertTrue(isinstance(sm.backend, software_manager.AptBackend))
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册