From 1fe3ba356e4243581fa3ee308287560bff7ccab4 Mon Sep 17 00:00:00 2001 From: Jason Rosenzweig Date: Fri, 4 Jun 2021 01:20:49 +0800 Subject: Better tests, added back _get_valid_dirs hopefully temporarily --- tests/unit/mainwindow/test_prompt.py | 89 ++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 35 deletions(-) (limited to 'tests') diff --git a/tests/unit/mainwindow/test_prompt.py b/tests/unit/mainwindow/test_prompt.py index 71d94e51d..558eaa89b 100644 --- a/tests/unit/mainwindow/test_prompt.py +++ b/tests/unit/mainwindow/test_prompt.py @@ -96,7 +96,11 @@ class TestFileCompletion: prompt.item_focus('next') assert prompt._lineedit.text() == str(testdir / 'bar') - def test_filtering_path(self, qtbot, tmp_path, get_prompt): + @pytest.mark.parametrize("keys,expected", + [([], ['bar', 'foo', 'bat'].sort()), + (['F'], ['foo'].sort()), + (['Backspace', 'A'], ['bar', 'bat'].sort())]) + def test_filtering_path(self, qtbot, tmp_path, get_prompt, keys, expected): testdir = tmp_path / 'test' for directory in ['bar', 'foo', 'bat']: @@ -104,40 +108,55 @@ class TestFileCompletion: prompt = get_prompt(str(testdir) + os.sep) - # Make sure all directories are shown - num_rows = prompt._file_model.rowCount(prompt._root_index) - visible = [] - for row in range(num_rows): - parent = prompt._file_model.index(os.path.basename(prompt._lineedit.text())) - index = prompt._file_model.index(row, 0, parent) - if prompt._file_view.isRowHidden(index.row(), index.parent()): - visible.append(index.data()) - - assert visible.sort() == ['bar', 'foo', 'bat'].sort() - - # Only foo should be completed with f - qtbot.keyPress(prompt._lineedit, Qt.Key_F) - num_rows = prompt._file_model.rowCount(prompt._root_index) - visible = [] - for row in range(num_rows): - parent = prompt._file_model.index(os.path.basename(prompt._lineedit.text())) - index = prompt._file_model.index(row, 0, parent) - if prompt._file_view.isRowHidden(index.row(), index.parent()): - visible.append(index.data()) - - assert visible.sort() == ['foo'].sort() - - # bat and bar should show up with a typed - qtbot.keyPress(prompt._lineedit, Qt.Key_Backspace) - qtbot.keyPress(prompt._lineedit, Qt.Key_A) - num_rows = prompt._file_model.rowCount(prompt._root_index) - visible = [] - for row in range(num_rows): - index = prompt._file_model.index(row, 0, prompt._file_model.index(os.path.basename(prompt._lineedit.text()))) - if prompt._file_view.isRowHidden(index.row(), index.parent()): - visible.append(index.data()) - - assert visible.sort() == ['bar', 'bat'].sort() + for _ in range(len(keys)): + for key in keys: + eval("qtbot.keyPress(prompt._lineedit, Qt.Key_{})".format(key)) + + num_rows = prompt._file_model.rowCount(prompt._root_index) + visible = [] + for row in range(num_rows): + parent = prompt._file_model.index(os.path.basename(prompt._lineedit.text())) + index = prompt._file_model.index(row, 0, parent) + if prompt._file_view.isRowHidden(index.row(), index.parent()): + visible.append(index.data()) + + assert visible.sort() == expected + + + # # Make sure all directories are shown + # num_rows = prompt._file_model.rowCount(prompt._root_index) + # visible = [] + # for row in range(num_rows): + # parent = prompt._file_model.index(os.path.basename(prompt._lineedit.text())) + # index = prompt._file_model.index(row, 0, parent) + # if prompt._file_view.isRowHidden(index.row(), index.parent()): + # visible.append(index.data()) + + # assert visible.sort() == ['bar', 'foo', 'bat'].sort() + + # # Only foo should be completed with f + # qtbot.keyPress(prompt._lineedit, Qt.Key_F) + # num_rows = prompt._file_model.rowCount(prompt._root_index) + # visible = [] + # for row in range(num_rows): + # parent = prompt._file_model.index(os.path.basename(prompt._lineedit.text())) + # index = prompt._file_model.index(row, 0, parent) + # if prompt._file_view.isRowHidden(index.row(), index.parent()): + # visible.append(index.data()) + + # assert visible.sort() == ['foo'].sort() + + # # bat and bar should show up with a typed + # qtbot.keyPress(prompt._lineedit, Qt.Key_Backspace) + # qtbot.keyPress(prompt._lineedit, Qt.Key_A) + # num_rows = prompt._file_model.rowCount(prompt._root_index) + # visible = [] + # for row in range(num_rows): + # index = prompt._file_model.index(row, 0, prompt._file_model.index(os.path.basename(prompt._lineedit.text()))) + # if prompt._file_view.isRowHidden(index.row(), index.parent()): + # visible.append(index.data()) + + # assert visible.sort() == ['bar', 'bat'].sort() @pytest.mark.linux def test_root_path(self, get_prompt): -- cgit v1.2.3-54-g00ecf