Brand Hydra OS image and add custom Fastfetch summary
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import shlex
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
from hydra import image
|
||||
|
||||
|
||||
class BrandingTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.tmp = tempfile.TemporaryDirectory()
|
||||
self.addCleanup(self.tmp.cleanup)
|
||||
self.root = Path(self.tmp.name) / 'rootfs'
|
||||
self.root.mkdir()
|
||||
version = '6.18.54-gentoo-dist-bin'
|
||||
(self.root / 'lib/modules' / version).mkdir(parents=True)
|
||||
(self.root / 'boot').mkdir()
|
||||
(self.root / 'boot' / ('vmlinuz-' + version)).write_text('kernel')
|
||||
|
||||
def release(self):
|
||||
return dict(line.split('=', 1)[0:1] + shlex.split(line.split('=', 1)[1])
|
||||
for line in (self.root / 'etc/os-release').read_text().splitlines()
|
||||
if line and not line.startswith('#'))
|
||||
|
||||
def test_export_brands_derivative_without_rewriting_packaged_gentoo_metadata(self):
|
||||
vendor = self.root / 'usr/lib/os-release'
|
||||
vendor.parent.mkdir(parents=True)
|
||||
original = "NAME='Gentoo'\nID=gentoo\nPRETTY_NAME='Gentoo Linux'\nVERSION_ID=2.18\nHOME_URL='https://www.gentoo.org/'\n"
|
||||
vendor.write_text(original)
|
||||
(self.root / 'etc').mkdir()
|
||||
(self.root / 'etc/os-release').symlink_to('../usr/lib/os-release')
|
||||
|
||||
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
|
||||
|
||||
self.assertEqual(self.release(), {
|
||||
'NAME': 'Hydra OS', 'PRETTY_NAME': 'Hydra OS', 'ID': 'hydra-os',
|
||||
'ID_LIKE': 'gentoo', 'VERSION_ID': '2.18',
|
||||
'HOME_URL': 'https://www.gentoo.org/',
|
||||
})
|
||||
self.assertFalse((self.root / 'etc/os-release').is_symlink())
|
||||
self.assertEqual(vendor.read_text(), original)
|
||||
self.assertEqual((self.root / 'etc/hostname').read_text(), 'hydra-os\n')
|
||||
|
||||
def test_export_can_brand_minimal_payload_without_os_release(self):
|
||||
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
|
||||
|
||||
self.assertTrue((self.root / 'etc/os-release').is_file())
|
||||
self.assertEqual(self.release(), {
|
||||
'NAME': 'Hydra OS', 'PRETTY_NAME': 'Hydra OS',
|
||||
'ID': 'hydra-os', 'ID_LIKE': 'gentoo',
|
||||
})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user