cmdtest.py: new skip_on_condition() method

This commit is contained in:
The MMGen Project 2026-05-21 12:09:32 +00:00
commit 2b1fbfa0fc
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 16 additions and 10 deletions

View file

@ -95,21 +95,21 @@ class CmdTestBase:
except:
msg(f'{fn}: file does not exist or could not be deleted')
def skip_for_platform(self, name, extra_msg=None):
if gc.platform == name:
msg(gray('Skipping test {!r} for {} platform{}'.format(
def skip_on_condition(self, condition, message, extra_msg):
if condition:
msg(gray('Skipping test {!r} {}{}'.format(
self.test_name,
name,
message,
f' ({extra_msg})' if extra_msg else "")))
return True
else:
return False
def skip_for_mac(self, extra_msg=None):
return self.skip_for_platform('darwin', extra_msg)
return self.skip_on_condition(gc.platform=='darwin', 'for macOS platform', extra_msg)
def skip_for_win(self, extra_msg=None):
return self.skip_for_platform('win32', extra_msg)
return self.skip_on_condition(gc.platform=='win32', 'for win32 platform', extra_msg)
def spawn_chk(self, *args, **kwargs):
"""

View file

@ -106,6 +106,12 @@ class CmdTestInput(CmdTestBase):
)
}
def skip_no_readline_insert(self, extra_msg=None):
return self.skip_on_condition(
gc.platform == 'darwin',
' (no readline insert support)',
extra_msg)
def get_seed_from_stdin(self):
self.spawn(msg_only=True)
from subprocess import run, PIPE
@ -336,7 +342,7 @@ class CmdTestInput(CmdTestBase):
False)
def line_input_insert_term1(self):
if self.skip_for_mac('readline text buffer issues'):
if self.skip_no_readline_insert():
return 'skip'
return self._line_input(
['prompt> ', True, 'foo', True],
@ -346,7 +352,7 @@ class CmdTestInput(CmdTestBase):
hold_protect_delay)
def line_input_insert_term2(self):
if self.skip_for_mac('readline text buffer issues'):
if self.skip_no_readline_insert():
return 'skip'
return self._line_input(
['prompt> ', True, 'foo', False],
@ -363,7 +369,7 @@ class CmdTestInput(CmdTestBase):
hold_protect_delay)
def line_input_edit_term_insert(self):
if self.skip_for_mac('readline text buffer issues'):
if self.skip_no_readline_insert():
return 'skip'
return self._line_input(
['prompt> ', True, 'φυφυ', True],
@ -373,7 +379,7 @@ class CmdTestInput(CmdTestBase):
hold_protect_delay)
def line_input_erase_term(self):
if self.skip_for_mac('readline text buffer issues'):
if self.skip_no_readline_insert():
return 'skip'
return self._line_input(
['prompt> ', True, 'foobarbaz', True],