mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-03-09 08:58:27 +03:00
osdict: Add testing and finish of code coverage
This commit is contained in:
parent
19bcec651c
commit
a9d33d49db
@ -3,6 +3,7 @@
|
|||||||
# This work is licensed under the GNU GPLv2 or later.
|
# This work is licensed under the GNU GPLv2 or later.
|
||||||
# See the COPYING file in the top-level directory.
|
# See the COPYING file in the top-level directory.
|
||||||
|
|
||||||
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from virtinst import Guest
|
from virtinst import Guest
|
||||||
@ -68,3 +69,28 @@ class TestOSDB(unittest.TestCase):
|
|||||||
raise AssertionError("Expected failure")
|
raise AssertionError("Expected failure")
|
||||||
except RuntimeError as e:
|
except RuntimeError as e:
|
||||||
assert str(e).endswith("URL location")
|
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)
|
||||||
|
@ -233,7 +233,7 @@ class _OSDB(object):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
if not self._os_loader.get_db().identify_media(media):
|
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)
|
return media.get_os().get_short_id(), _OsMedia(media)
|
||||||
|
|
||||||
def guess_os_by_tree(self, location):
|
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)
|
osobj, treeobj = self._os_loader.get_db().guess_os_from_tree(tree)
|
||||||
if not osobj:
|
if not osobj:
|
||||||
return None
|
return None # pragma: no cover
|
||||||
return osobj.get_short_id(), treeobj
|
return osobj.get_short_id(), treeobj
|
||||||
|
|
||||||
def list_os(self):
|
def list_os(self):
|
||||||
@ -552,7 +552,10 @@ class _OsVariant(object):
|
|||||||
|
|
||||||
# Red Hat distros
|
# Red Hat distros
|
||||||
try:
|
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:
|
except Exception:
|
||||||
# Can hit this for -rawhide or -unknown
|
# Can hit this for -rawhide or -unknown
|
||||||
version = 999
|
version = 999
|
||||||
@ -589,7 +592,7 @@ class _OsVariant(object):
|
|||||||
|
|
||||||
def get_install_script_list(self):
|
def get_install_script_list(self):
|
||||||
if not self._os:
|
if not self._os:
|
||||||
return []
|
return [] # pragma: no cover
|
||||||
return list(_OsinfoIter(self._os.get_install_script_list()))
|
return list(_OsinfoIter(self._os.get_install_script_list()))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user