diff options
author | kotfu <kotfu@kotfu.net> | 2019-05-24 20:00:16 -0600 |
---|---|---|
committer | kotfu <kotfu@kotfu.net> | 2019-05-24 20:00:16 -0600 |
commit | 69308f455193d5b5f89a6edf7c7d3d052bdcd5ce (patch) | |
tree | 1651a0670678aabb9e573c740d2037a783c1ccd6 /tests | |
parent | ba6c5ed5cc006b156093f977856afc03d6c12763 (diff) | |
download | cmd2-git-69308f455193d5b5f89a6edf7c7d3d052bdcd5ce.tar.gz |
Refactor HistoryItem to not subclass str
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_history.py | 121 |
1 files changed, 91 insertions, 30 deletions
diff --git a/tests/test_history.py b/tests/test_history.py index 2a2d90d2..4553575a 100644 --- a/tests/test_history.py +++ b/tests/test_history.py @@ -55,33 +55,82 @@ def test_exclude_from_history(base_app, monkeypatch): def hist(): from cmd2.parsing import Statement from cmd2.cmd2 import History, HistoryItem - h = History([HistoryItem(Statement('', raw='first')), - HistoryItem(Statement('', raw='second')), - HistoryItem(Statement('', raw='third')), - HistoryItem(Statement('', raw='fourth'))]) + h = History([HistoryItem(Statement('', raw='first'), 1), + HistoryItem(Statement('', raw='second'), 2), + HistoryItem(Statement('', raw='third'), 3), + HistoryItem(Statement('', raw='fourth'),4)]) return h def test_history_class_span(hist): for tryit in ['*', ':', '-', 'all', 'ALL']: assert hist.span(tryit) == hist - assert hist.span('3') == ['third'] - assert hist.span('-1') == ['fourth'] - - assert hist.span('2..') == ['second', 'third', 'fourth'] - assert hist.span('2:') == ['second', 'third', 'fourth'] - - assert hist.span('-2..') == ['third', 'fourth'] - assert hist.span('-2:') == ['third', 'fourth'] - - assert hist.span('1..3') == ['first', 'second', 'third'] - assert hist.span('1:3') == ['first', 'second', 'third'] - assert hist.span('2:-1') == ['second', 'third', 'fourth'] - assert hist.span('-3:4') == ['second', 'third','fourth'] - assert hist.span('-4:-2') == ['first', 'second', 'third'] - - assert hist.span(':-2') == ['first', 'second', 'third'] - assert hist.span('..-2') == ['first', 'second', 'third'] + assert hist.span('3')[0].statement.raw == 'third' + assert hist.span('-1')[0].statement.raw == 'fourth' + + span = hist.span('2..') + assert len(span) == 3 + assert span[0].statement.raw == 'second' + assert span[1].statement.raw == 'third' + assert span[2].statement.raw == 'fourth' + + span = hist.span('2:') + assert len(span) == 3 + assert span[0].statement.raw == 'second' + assert span[1].statement.raw == 'third' + assert span[2].statement.raw == 'fourth' + + span = hist.span('-2..') + assert len(span) == 2 + assert span[0].statement.raw == 'third' + assert span[1].statement.raw == 'fourth' + + span = hist.span('-2:') + assert len(span) == 2 + assert span[0].statement.raw == 'third' + assert span[1].statement.raw == 'fourth' + + span = hist.span('1..3') + assert len(span) == 3 + assert span[0].statement.raw == 'first' + assert span[1].statement.raw == 'second' + assert span[2].statement.raw == 'third' + + span = hist.span('1:3') + assert len(span) == 3 + assert span[0].statement.raw == 'first' + assert span[1].statement.raw == 'second' + assert span[2].statement.raw == 'third' + + span = hist.span('2:-1') + assert len(span) == 3 + assert span[0].statement.raw == 'second' + assert span[1].statement.raw == 'third' + assert span[2].statement.raw == 'fourth' + + span = hist.span('-3:4') + assert len(span) == 3 + assert span[0].statement.raw == 'second' + assert span[1].statement.raw == 'third' + assert span[2].statement.raw == 'fourth' + + span = hist.span('-4:-2') + assert len(span) == 3 + assert span[0].statement.raw == 'first' + assert span[1].statement.raw == 'second' + assert span[2].statement.raw == 'third' + + span = hist.span(':-2') + assert len(span) == 3 + assert span[0].statement.raw == 'first' + assert span[1].statement.raw == 'second' + assert span[2].statement.raw == 'third' + + span = hist.span('..-2') + assert len(span) == 3 + assert span[0].statement.raw == 'first' + assert span[1].statement.raw == 'second' + assert span[2].statement.raw == 'third' value_errors = ['fred', 'fred:joe', 'a..b', '2 ..', '1 : 3', '1:0', '0:3'] for tryit in value_errors: @@ -89,10 +138,10 @@ def test_history_class_span(hist): hist.span(tryit) def test_history_class_get(hist): - assert hist.get('1') == 'first' - assert hist.get(3) == 'third' + assert hist.get('1').statement.raw == 'first' + assert hist.get(3).statement.raw == 'third' assert hist.get('-2') == hist[-2] - assert hist.get(-1) == 'fourth' + assert hist.get(-1).statement.raw == 'fourth' with pytest.raises(IndexError): hist.get(0) @@ -115,12 +164,23 @@ def test_history_class_get(hist): hist.get(None) def test_history_str_search(hist): - assert hist.str_search('ir') == ['first', 'third'] - assert hist.str_search('rth') == ['fourth'] + items = hist.str_search('ir') + assert len(items) == 2 + assert items[0].statement.raw == 'first' + assert items[1].statement.raw == 'third' + + items = hist.str_search('rth') + assert len(items) == 1 + assert items[0].statement.raw == 'fourth' def test_history_regex_search(hist): - assert hist.regex_search('/i.*d/') == ['third'] - assert hist.regex_search('s[a-z]+ond') == ['second'] + items = hist.regex_search('/i.*d/') + assert len(items) == 1 + assert items[0].statement.raw == 'third' + + items = hist.regex_search('s[a-z]+ond') + assert len(items) == 1 + assert items[0].statement.raw == 'second' def test_history_max_length_zero(hist): hist.truncate(0) @@ -132,8 +192,9 @@ def test_history_max_length_negative(hist): def test_history_max_length(hist): hist.truncate(2) - assert hist.get(1) == 'third' - assert hist.get(2) == 'fourth' + assert len(hist) == 2 + assert hist.get(1).statement.raw == 'third' + assert hist.get(2).statement.raw == 'fourth' def test_base_history(base_app): run_cmd(base_app, 'help') |