osdict: Add testing and finish of code coverage

This commit is contained in:
Cole Robinson 2019-06-12 18:36:14 -04:00
parent 19bcec651c
commit a9d33d49db
2 changed files with 33 additions and 4 deletions

View File

@ -3,6 +3,7 @@
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
import os
import unittest
from virtinst import Guest
@ -68,3 +69,28 @@ class TestOSDB(unittest.TestCase):
raise AssertionError("Expected failure")
except RuntimeError as e:
assert str(e).endswith("URL location")
# Trigger an error path for code coverage
self.assertEqual(OSDB.guess_os_by_tree(os.getcwd()), None)
def test_kernel_url(self):
def _c(name):
osobj = OSDB.lookup_os(name)
if not osobj:
self.skipTest("osinfo-db doesn't have '%s'" % name)
return osobj.get_kernel_url_arg()
self.assertEqual(_c("rhel7-unknown"), "inst.repo")
self.assertEqual(_c("rhel6-unknown"), "method")
self.assertEqual(_c("fedora-rawhide"), "inst.repo")
self.assertEqual(_c("fedora20"), "inst.repo")
self.assertEqual(_c("generic"), None)
self.assertEqual(_c("win10"), None)
self.assertEqual(_c("sle15"), "install")
def test_related_to(self):
# pylint: disable=protected-access
win10 = OSDB.lookup_os("win10")
self.assertTrue(win10._is_related_to("winxp"))
self.assertTrue(win10._is_related_to("win10"))
self.assertTrue(win10._is_related_to("fedora26") is False)

View File

@ -233,7 +233,7 @@ class _OSDB(object):
return None
if not self._os_loader.get_db().identify_media(media):
return None
return None # pragma: no cover
return media.get_os().get_short_id(), _OsMedia(media)
def guess_os_by_tree(self, location):
@ -254,7 +254,7 @@ class _OSDB(object):
osobj, treeobj = self._os_loader.get_db().guess_os_from_tree(tree)
if not osobj:
return None
return None # pragma: no cover
return osobj.get_short_id(), treeobj
def list_os(self):
@ -552,7 +552,10 @@ class _OsVariant(object):
# Red Hat distros
try:
version = float(self.version)
if re.match(r"[0-9]+-unknown", self.version):
version = float(self.version.split("-")[0])
else:
version = float(self.version)
except Exception:
# Can hit this for -rawhide or -unknown
version = 999
@ -589,7 +592,7 @@ class _OsVariant(object):
def get_install_script_list(self):
if not self._os:
return []
return [] # pragma: no cover
return list(_OsinfoIter(self._os.get_install_script_list()))