ekernel/test/test_kernel.py
Florian Schroegendorfer 28b33eaf1c
renamed test directory
2024-06-13 00:11:16 +02:00

79 lines
2.3 KiB
Python

import shutil
import unittest
from packaging.version import Version
from test import Interceptor
import test.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"
)
def test_kernel_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_kernel_version (self):
self.assertEqual(ekernel.version("0.0.1-gentoo"), Version("0.0.1"))
def test_kernel_constructor (self):
self.check_vars(
ekernel.Kernel(data.current),
ekernel.Kernel.current().src
)
def test_kernel_list (self):
self.assertEqual(ekernel.Kernel.list(), data.kernels)
def test_kernel_list_ascending (self):
self.assertEqual(
ekernel.Kernel.list(descending=False),
list(reversed(data.kernels))
)
def test_kernel_current (self):
self.check_vars(ekernel.Kernel.current(), data.current)
def test_kernel_latest (self):
self.check_vars(ekernel.Kernel.latest(), data.latest)
def test_kernel_eq (self):
self.assertEqual(
ekernel.Kernel.current(),
ekernel.Kernel(data.current)
)
def test_kernel_neq (self):
self.assertNotEqual(ekernel.Kernel.current(), ekernel.Kernel.latest())
def test_kernel_bootable (self):
self.assertFalse(ekernel.Kernel.latest().bootable())
self.assertTrue(ekernel.Kernel.current().bootable())
def test_kernel_current_missing (self):
kernel = ekernel.Kernel.current()
shutil.rmtree(kernel.src)
with self.assertRaises(ValueError) as e:
ekernel.Kernel.current()
self.assertEqual(
str(e.exception),
f"error: missing source {kernel.src}"
)