예제 #1
0
    def test_deletion(self, user_response):
        tab = MetaboliteTab()
        model = Model()
        metabolite1 = Metabolite("m1")
        metabolite2 = Metabolite("m2")
        metabolite3 = Metabolite("m3")
        model.add_metabolites([metabolite1, metabolite2, metabolite3])
        model.setup_metabolite_table()
        assert len(
            model.metabolites) == model.QtMetaboliteTable.rowCount() == 3
        tab.set_model(model)
        tab.confirmDeletion = Mock(return_value=user_response)

        item = tab.dataTable.item(1, 0)
        selected_metabolite = item.link
        source_index = tab.dataTable.indexFromItem(item)
        view_index = tab.proxyModel.mapFromSource(source_index)
        tab.dataView.selectRow(view_index.row())

        assert tab.confirmDeletion.called is False
        tab.deleteItemSlot()
        assert tab.confirmDeletion.called is True
        assert (selected_metabolite in model.metabolites) is not user_response
        assert tab.dataTable.findItems(
            selected_metabolite.id) is not user_response
        if user_response:
            assert len(
                model.metabolites) == model.QtMetaboliteTable.rowCount() == 2
예제 #2
0
 def test_edit_item_dialog_reject(self):
     tab = MetaboliteTab()
     model = Model()
     metabolite1 = Metabolite("m1")
     model.add_metabolites([metabolite1])
     model.setup_metabolite_table()
     model.QtMetaboliteTable.update_row_from_link = Mock()
     tab.set_model(model)
     tab.dataView.selectRow(0)
     assert model.QtMetaboliteTable.update_row_from_link.called is False
     tab.editItemSlot()
     assert model.QtMetaboliteTable.update_row_from_link.called is False