diff --git a/spyder/widgets/variableexplorer/arrayeditor.py b/spyder/widgets/variableexplorer/arrayeditor.py index 9ec78036836..c50cfe06930 100644 --- a/spyder/widgets/variableexplorer/arrayeditor.py +++ b/spyder/widgets/variableexplorer/arrayeditor.py @@ -244,7 +244,11 @@ def bgcolor(self, state): def get_value(self, index): i = index.row() j = index.column() - return self.changes.get((i, j), self._data[i, j]) + if len(self._data.shape) == 1: + value = self._data[j] + else: + value = self._data[i, j] + return self.changes.get((i, j), value) def data(self, index, role=Qt.DisplayRole): """Cell content""" diff --git a/spyder/widgets/variableexplorer/tests/test_arrayeditor.py b/spyder/widgets/variableexplorer/tests/test_arrayeditor.py index 173f9d7ef71..a2f19e7329c 100644 --- a/spyder/widgets/variableexplorer/tests/test_arrayeditor.py +++ b/spyder/widgets/variableexplorer/tests/test_arrayeditor.py @@ -120,6 +120,45 @@ def test_arrayeditor_with_3d_array(qtbot): assert_array_equal(arr, launch_arrayeditor(arr, "3D array")) +def test_arrayeditor_edit_1d_array(qtbot): + exp_arr = np.array([1, 0, 2, 3, 4]) + arr = np.arange(0, 5) + dlg = ArrayEditor() + assert dlg.setup_and_check(arr, '1D array', xlabels=None, ylabels=None) + dlg.show() + qtbot.waitForWindowShown(dlg) + view = dlg.arraywidget.view + + qtbot.keyPress(view, Qt.Key_Down) + qtbot.keyPress(view, Qt.Key_Up) + qtbot.keyClicks(view, '1') + qtbot.keyPress(view, Qt.Key_Down) + qtbot.keyClicks(view, '0') + qtbot.keyPress(view, Qt.Key_Down) + qtbot.keyPress(view, Qt.Key_Return) + assert np.sum(exp_arr == dlg.get_value()) == 5 + + +def test_arrayeditor_edit_2d_array(qtbot): + arr = np.ones((3, 3)) + diff_arr = arr.copy() + dlg = ArrayEditor() + assert dlg.setup_and_check(arr, '2D array', xlabels=None, ylabels=None) + dlg.show() + qtbot.waitForWindowShown(dlg) + view = dlg.arraywidget.view + + qtbot.keyPress(view, Qt.Key_Down) + qtbot.keyPress(view, Qt.Key_Right) + qtbot.keyClicks(view, '3') + qtbot.keyPress(view, Qt.Key_Down) + qtbot.keyPress(view, Qt.Key_Right) + qtbot.keyClicks(view, '0') + qtbot.keyPress(view, Qt.Key_Left) + qtbot.keyPress(view, Qt.Key_Return) + + assert np.sum(diff_arr != dlg.get_value()) == 2 + + if __name__ == "__main__": pytest.main() -