Make last_pipe_status fallback to last_exit_code
This commit is contained in:
parent
de899c5fc5
commit
443679d532
|
@ -39,7 +39,10 @@ def last_pipe_status(pl, segment_info):
|
||||||
|
|
||||||
Highlight groups used: ``exit_fail``, ``exit_success``
|
Highlight groups used: ``exit_fail``, ``exit_success``
|
||||||
'''
|
'''
|
||||||
last_pipe_status = segment_info['args'].last_pipe_status
|
last_pipe_status = (
|
||||||
|
segment_info['args'].last_pipe_status
|
||||||
|
or (segment_info['args'].last_exit_code,)
|
||||||
|
)
|
||||||
if any(last_pipe_status):
|
if any(last_pipe_status):
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,15 +52,35 @@ class TestShell(TestCase):
|
||||||
|
|
||||||
def test_last_pipe_status(self):
|
def test_last_pipe_status(self):
|
||||||
pl = Pl()
|
pl = Pl()
|
||||||
segment_info = {'args': Args(last_pipe_status=[])}
|
segment_info = {'args': Args(last_pipe_status=[], last_exit_code=0)}
|
||||||
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
||||||
segment_info['args'].last_pipe_status = [0, 0, 0]
|
segment_info['args'].last_pipe_status = [0, 0, 0]
|
||||||
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
||||||
|
segment_info['args'].last_pipe_status = [0, 0]
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
||||||
|
segment_info['args'].last_pipe_status = [0]
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), None)
|
||||||
segment_info['args'].last_pipe_status = [0, 2, 0]
|
segment_info['args'].last_pipe_status = [0, 2, 0]
|
||||||
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
{'contents': '2', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
{'contents': '2', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True}
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
|
])
|
||||||
|
segment_info['args'].last_pipe_status = [2, 0, 0]
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
|
{'contents': '2', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
|
])
|
||||||
|
segment_info['args'].last_pipe_status = [0, 0, 2]
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True},
|
||||||
|
{'contents': '2', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
|
])
|
||||||
|
segment_info['args'].last_pipe_status = [2]
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
|
{'contents': '2', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
])
|
])
|
||||||
segment_info['args'].last_pipe_status = [0, 'sigsegv', 'sigsegv+core']
|
segment_info['args'].last_pipe_status = [0, 'sigsegv', 'sigsegv+core']
|
||||||
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
|
@ -80,6 +100,11 @@ class TestShell(TestCase):
|
||||||
{'contents': 'sigsegv+core', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
{'contents': 'sigsegv+core', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True}
|
{'contents': '0', 'highlight_groups': ['exit_success'], 'draw_inner_divider': True}
|
||||||
])
|
])
|
||||||
|
segment_info['args'].last_pipe_status = []
|
||||||
|
segment_info['args'].last_exit_code = 5
|
||||||
|
self.assertEqual(shell.last_pipe_status(pl=pl, segment_info=segment_info), [
|
||||||
|
{'contents': '5', 'highlight_groups': ['exit_fail'], 'draw_inner_divider': True},
|
||||||
|
])
|
||||||
|
|
||||||
def test_jobnum(self):
|
def test_jobnum(self):
|
||||||
pl = Pl()
|
pl = Pl()
|
||||||
|
|
Loading…
Reference in New Issue