ekernel/test/test_kernel.py

79 lines
2.3 KiB
Python
Raw Normal View History

2024-06-03 18:05:29 +02:00
import shutil
import unittest
from packaging.version import Version
2024-06-13 00:11:16 +02:00
from test import Interceptor
import test.data.kernel as data
2024-06-03 18:05:29 +02:00
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
2024-06-13 00:11:16 +02:00
def test_kernel_paths (self):
2024-06-03 18:05:29 +02:00
self.assertEqual(ekernel.Kernel.src, data.src)
self.assertEqual(ekernel.Kernel.linux, data.linux)
self.assertEqual(ekernel.Kernel.modules, data.modules)
2024-06-13 00:11:16 +02:00
def test_kernel_version (self):
2024-06-03 18:05:29 +02:00
self.assertEqual(ekernel.version("0.0.1-gentoo"), Version("0.0.1"))
2024-06-13 00:11:16 +02:00
def test_kernel_constructor (self):
2024-06-03 18:05:29 +02:00
self.check_vars(
ekernel.Kernel(data.current),
ekernel.Kernel.current().src
)
2024-06-13 00:11:16 +02:00
def test_kernel_list (self):
2024-06-03 18:05:29 +02:00
self.assertEqual(ekernel.Kernel.list(), data.kernels)
2024-06-13 00:11:16 +02:00
def test_kernel_list_ascending (self):
2024-06-03 18:05:29 +02:00
self.assertEqual(
ekernel.Kernel.list(descending=False),
list(reversed(data.kernels))
)
2024-06-13 00:11:16 +02:00
def test_kernel_current (self):
2024-06-03 18:05:29 +02:00
self.check_vars(ekernel.Kernel.current(), data.current)
2024-06-13 00:11:16 +02:00
def test_kernel_latest (self):
2024-06-03 18:05:29 +02:00
self.check_vars(ekernel.Kernel.latest(), data.latest)
2024-06-13 00:11:16 +02:00
def test_kernel_eq (self):
2024-06-03 18:05:29 +02:00
self.assertEqual(
ekernel.Kernel.current(),
ekernel.Kernel(data.current)
)
2024-06-13 00:11:16 +02:00
def test_kernel_neq (self):
2024-06-03 18:05:29 +02:00
self.assertNotEqual(ekernel.Kernel.current(), ekernel.Kernel.latest())
2024-06-13 00:11:16 +02:00
def test_kernel_bootable (self):
2024-06-10 02:41:33 +02:00
self.assertFalse(ekernel.Kernel.latest().bootable())
self.assertTrue(ekernel.Kernel.current().bootable())
2024-06-13 00:11:16 +02:00
def test_kernel_current_missing (self):
2024-06-03 18:05:29 +02:00
kernel = ekernel.Kernel.current()
shutil.rmtree(kernel.src)
with self.assertRaises(ValueError) as e:
ekernel.Kernel.current()
2024-06-13 00:11:16 +02:00
self.assertEqual(
str(e.exception),
f"error: missing source {kernel.src}"
)