ekernel/tests/test_kernel.py

76 lines
2.2 KiB
Python
Raw Normal View History

2024-06-03 18:05:29 +02:00
import shutil
import unittest
from packaging.version import Version
from tests import Interceptor
import tests.data.kernel as data
import ekernel
class Tests (unittest.TestCase):
def setUp (self):
data.setup()
def check_vars (self, k, s):
v = ekernel.version(s.name)
self.assertEqual(k.version, v)
self.assertEqual(k.src, s)
self.assertEqual(k.config, s / ".config")
self.assertEqual(k.bzImage, s / "arch/x86_64/boot/bzImage")
self.assertEqual(k.modules, data.modules / f"{v.base_version}-gentoo")
self.assertEqual(
k.bkp,
data.boot.parent / f"gentoo-{v.base_version}.efi"
)
2024-06-03 18:05:29 +02:00
def test_paths (self):
self.assertEqual(ekernel.Kernel.src, data.src)
self.assertEqual(ekernel.Kernel.linux, data.linux)
self.assertEqual(ekernel.Kernel.modules, data.modules)
def test_version (self):
self.assertEqual(ekernel.version("0.0.1-gentoo"), Version("0.0.1"))
def test_constructor (self):
self.check_vars(
ekernel.Kernel(data.current),
ekernel.Kernel.current().src
)
def test_list (self):
self.assertEqual(ekernel.Kernel.list(), data.kernels)
def test_list_ascending (self):
self.assertEqual(
ekernel.Kernel.list(descending=False),
list(reversed(data.kernels))
)
def test_current (self):
self.check_vars(ekernel.Kernel.current(), data.current)
def test_latest (self):
self.check_vars(ekernel.Kernel.latest(), data.latest)
def test_eq (self):
self.assertEqual(
ekernel.Kernel.current(),
ekernel.Kernel(data.current)
)
def test_neq (self):
self.assertNotEqual(ekernel.Kernel.current(), ekernel.Kernel.latest())
2024-06-10 02:41:33 +02:00
def test_bootable (self):
self.assertFalse(ekernel.Kernel.latest().bootable())
self.assertTrue(ekernel.Kernel.current().bootable())
2024-06-03 18:05:29 +02:00
def test_current_missing (self):
kernel = ekernel.Kernel.current()
shutil.rmtree(kernel.src)
with self.assertRaises(ValueError) as e:
ekernel.Kernel.current()
2024-06-12 01:45:25 +02:00
self.assertEqual(str(e.exception), f"error: missing source {kernel.src}")