Generate Hydra Fastfetch emblem and verify packaged ASCII art
This commit is contained in:
+28
-6
@@ -650,17 +650,39 @@ else: sys.exit(1)
|
||||
with self.assertRaises(MediaError):
|
||||
validate_iso(iso)
|
||||
|
||||
def test_terminal_ux_branding_rejects_wrong_os_missing_logo_and_render_errors(self):
|
||||
self.assertTrue(hasattr(self.mod, 'verify_terminal_ux_branding'), 'Default Fastfetch verification is missing')
|
||||
rendered = ' .-(o > .-(o > .-(o >\nH Y D R A O S\nOS: Hydra OS x86_64\n'
|
||||
self.mod.verify_terminal_ux_branding('\x1b[36m' + rendered + '\x1b[0m', '')
|
||||
def test_terminal_ux_branding_verifies_packaged_art_with_colors_and_side_data(self):
|
||||
logo = '$1 @@@ @@@ @@@\n %%%%%\n\n$2 H Y D R A O S\n'
|
||||
rendered = (' @@@ @@@ @@@ hydratest@hydra-os\n'
|
||||
' %%%%% OS: Hydra OS x86_64\n'
|
||||
' Kernel: Linux\n'
|
||||
' H Y D R A O S Uptime: 1 minute\n')
|
||||
actual = self.mod.verify_terminal_ux_branding(
|
||||
'\x1b[36m' + rendered + '\x1b[0m', '', logo)
|
||||
self.assertEqual(actual, rendered)
|
||||
|
||||
def test_terminal_ux_branding_rejects_incomplete_or_wrong_art_and_render_errors(self):
|
||||
logo = '$1 @@@\n %%%\n %%%\n$2 H Y D R A O S\n'
|
||||
rendered = ' @@@\n %%%\n %%%\n H Y D R A O S\nOS: Hydra OS x86_64\n'
|
||||
for output, error in ((rendered.replace('OS: Hydra OS', 'OS: Gentoo'), ''),
|
||||
(rendered.replace('(o >', 'head'), ''),
|
||||
(rendered.replace(' @@@\n', ''), ''),
|
||||
(rendered.replace(' @@@', ' @@@@'), ''),
|
||||
(rendered.replace(' @@@', ' @@@ xx'), ''),
|
||||
(rendered.replace(' %%%\n', '', 1), ''),
|
||||
(rendered.replace(' @@@\n %%%', ' %%%\n @@@'), ''),
|
||||
(rendered.replace('H Y D R A O S', 'OTHER OS'), ''),
|
||||
('H Y D R A O S\nOS: Hydra OS x86_64\n', ''),
|
||||
(rendered, 'Unknown JSON key: invalid'),
|
||||
(rendered + 'Memory: Error loading module\n', '')):
|
||||
with self.subTest(output=output, error=error):
|
||||
with self.assertRaises(self.mod.SmokeError):
|
||||
self.mod.verify_terminal_ux_branding(output, error)
|
||||
self.mod.verify_terminal_ux_branding(output, error, logo)
|
||||
|
||||
def test_terminal_ux_branding_requires_nonblank_packaged_art_and_caption(self):
|
||||
rendered = ' @@@\n H Y D R A O S\nOS: Hydra OS x86_64\n'
|
||||
for logo in ('', ' \n', '$2 H Y D R A O S\n', '$1 @@@\n'):
|
||||
with self.subTest(logo=logo):
|
||||
with self.assertRaises(self.mod.SmokeError):
|
||||
self.mod.verify_terminal_ux_branding(rendered, '', logo)
|
||||
|
||||
def test_terminal_ux_snapshot_checks_live_qmp_identity_and_same_process(self):
|
||||
self.assertTrue(hasattr(self.mod, 'terminal_ux_snapshot'), 'Installed UX identity verification is missing')
|
||||
|
||||
Reference in New Issue
Block a user