Merge "Add support for openSUSE and SLES"

This commit is contained in:
Jenkins 2016-06-27 14:50:43 +00:00 committed by Gerrit Code Review
commit 6e57fa5f6f
2 changed files with 33 additions and 2 deletions

View File

@ -130,8 +130,13 @@ class Depends(object):
return sorted(profiles)
def platform_profiles(self):
distro, release, codename = subprocess.check_output(
lsbinfo = subprocess.check_output(
["lsb_release", "-cirs"], stderr=subprocess.STDOUT).lower().split()
# NOTE(toabctl): distro can be more than one string (i.e. "SUSE LINUX")
codename = lsbinfo[len(lsbinfo) - 1:len(lsbinfo)][0]
release = lsbinfo[len(lsbinfo) - 2:len(lsbinfo) - 1][0]
# NOTE(toabctl): space is a delimiter for bindep, so remove the spaces
distro = "".join(lsbinfo[0:len(lsbinfo) - 2])
atoms = set([distro])
atoms.add("%s-%s" % (distro, codename))
releasebits = release.split(".")
@ -140,7 +145,7 @@ class Depends(object):
if distro in ["debian", "ubuntu"]:
atoms.add("dpkg")
self.platform = Dpkg()
elif distro in ["centos", "fedora"]:
elif distro in ["centos", "fedora", "opensuse", "suselinux"]:
atoms.add("rpm")
self.platform = Rpm()
elif distro in ["gentoo"]:

View File

@ -66,6 +66,18 @@ class TestDepends(TestCase):
self.assertThat(
depends.platform_profiles(), Contains("platform:fedora"))
def test_detects_opensuse(self):
self._mock_lsb("openSUSE")
depends = Depends("")
self.assertThat(
depends.platform_profiles(), Contains("platform:opensuse"))
def test_detects_suse_linux(self):
self._mock_lsb("SUSE Linux")
depends = Depends("")
self.assertThat(
depends.platform_profiles(), Contains("platform:suselinux"))
def test_detects_ubuntu(self):
self._mock_lsb("Ubuntu")
depends = Depends("")
@ -104,6 +116,20 @@ class TestDepends(TestCase):
depends.platform_profiles(), Contains("platform:rpm"))
self.assertIsInstance(depends.platform, Rpm)
def test_opensuse_implies_rpm(self):
self._mock_lsb("openSUSE")
depends = Depends("")
self.assertThat(
depends.platform_profiles(), Contains("platform:rpm"))
self.assertIsInstance(depends.platform, Rpm)
def test_suse_linux_implies_rpm(self):
self._mock_lsb("SUSE LINUX")
depends = Depends("")
self.assertThat(
depends.platform_profiles(), Contains("platform:rpm"))
self.assertIsInstance(depends.platform, Rpm)
def test_ubuntu_implies_dpkg(self):
self._mock_lsb("Ubuntu")
depends = Depends("")