Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions spinetoolbox/spine_db_editor/selection_for_filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ def _update_scenario_selection(self, selected: QItemSelection, deselected: QItem
continue
db_map = parent_index.data(DB_MAP_ROLE)
scenario_id = index.data(ITEM_ID_ROLE)
if scenario_id is None:
continue
selection.setdefault(db_map, set()).add(scenario_id)
if not selection:
selection = Asterisk
Expand Down
14 changes: 14 additions & 0 deletions tests/spine_db_editor/test_selection_for_filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -592,3 +592,17 @@ def test_select_scenario(self, db_editor, logger):
mock_signal.emit.assert_not_called()
view.selectionModel().select(model.index(1, 0, scenario_index), QItemSelectionModel.SelectionFlag.Select)
mock_signal.emit.assert_not_called()

def test_selecting_add_new_scenario_item_does_not_affect_selection(self, db_editor, logger):
view = db_editor.ui.scenario_tree_view
model = view.model()
database_index = model.index(0, 0)
assert database_index.data() == "TestScenarioSelectionForFiltering_db"
assert model.rowCount(database_index) == 1
scenario_index = model.index(0, 0, database_index)
assert scenario_index.data() == "Type new scenario name here..."
filter_selection = db_editor._scenario_selection_for_filtering
with mock.patch.object(filter_selection, "scenario_selection_changed") as mock_signal:
mock_signal.emit = mock.MagicMock()
view.selectionModel().select(scenario_index, QItemSelectionModel.SelectionFlag.ClearAndSelect)
mock_signal.emit.assert_not_called()