Beispiel #1
0
class Ui_ReactionEditDialog(object):
    def setupUi(self, ReactionEditDialog):
        ReactionEditDialog.setObjectName("ReactionEditDialog")
        ReactionEditDialog.resize(383, 200)
        self.verticalLayout = QtWidgets.QVBoxLayout(ReactionEditDialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.attributeWidget = ReactionAttributesDisplayWidget(ReactionEditDialog)
        self.attributeWidget.setObjectName("attributeWidget")
        self.verticalLayout.addWidget(self.attributeWidget)
        self.tabWidget = QtWidgets.QTabWidget(ReactionEditDialog)
        self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.tabWidget.setObjectName("tabWidget")
        self.metaboliteTab = StoichiometryDisplayWidget()
        self.metaboliteTab.setObjectName("metaboliteTab")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.metaboliteTab)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.tabWidget.addTab(self.metaboliteTab, "")
        self.geneTab = GenesDisplayWidget()
        self.geneTab.setObjectName("geneTab")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.geneTab)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.tabWidget.addTab(self.geneTab, "")
        self.annotationTab = AnnotationDisplayWidget()
        self.annotationTab.setObjectName("annotationTab")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.annotationTab)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.tabWidget.addTab(self.annotationTab, "")
        self.evidenceTab = EvidenceDisplayWidget()
        self.evidenceTab.setObjectName("evidenceTab")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.evidenceTab)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.tabWidget.addTab(self.evidenceTab, "")
        self.commentTab = CommentDisplayWidget()
        self.commentTab.setObjectName("commentTab")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.commentTab)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.tabWidget.addTab(self.commentTab, "")
        self.verticalLayout.addWidget(self.tabWidget)
        self.buttonBox = QtWidgets.QDialogButtonBox(ReactionEditDialog)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Save)
        self.buttonBox.setObjectName("buttonBox")
        self.verticalLayout.addWidget(self.buttonBox)

        self.retranslateUi(ReactionEditDialog)
        self.tabWidget.setCurrentIndex(0)
        self.buttonBox.accepted.connect(ReactionEditDialog.accept)
        self.buttonBox.rejected.connect(ReactionEditDialog.reject)
        QtCore.QMetaObject.connectSlotsByName(ReactionEditDialog)

    def retranslateUi(self, ReactionEditDialog):
        _translate = QtCore.QCoreApplication.translate
        ReactionEditDialog.setWindowTitle(_translate("ReactionEditDialog", "Edit reaction"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.metaboliteTab), _translate("ReactionEditDialog", "Metabolites"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.geneTab), _translate("ReactionEditDialog", "Genes"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.annotationTab), _translate("ReactionEditDialog", "Annotations"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.evidenceTab), _translate("ReactionEditDialog", "Evidence"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.commentTab), _translate("ReactionEditDialog", "Comment"))
class Ui_MetaboliteEditDialog(object):
    def setupUi(self, MetaboliteEditDialog):
        MetaboliteEditDialog.setObjectName("MetaboliteEditDialog")
        MetaboliteEditDialog.resize(240, 223)
        self.verticalLayout = QtWidgets.QVBoxLayout(MetaboliteEditDialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.attributeWidget = MetaboliteAttributesDisplayWidget(
            MetaboliteEditDialog)
        self.attributeWidget.setObjectName("attributeWidget")
        self.verticalLayout.addWidget(self.attributeWidget)
        self.tabWidget = QtWidgets.QTabWidget(MetaboliteEditDialog)
        self.tabWidget.setObjectName("tabWidget")
        self.reactionsTab = ReactionsDisplayWidget()
        self.reactionsTab.setObjectName("reactionsTab")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.reactionsTab)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.tabWidget.addTab(self.reactionsTab, "")
        self.annotationTab = AnnotationDisplayWidget()
        self.annotationTab.setObjectName("annotationTab")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.annotationTab)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.tabWidget.addTab(self.annotationTab, "")
        self.evidenceTab = EvidenceDisplayWidget()
        self.evidenceTab.setObjectName("evidenceTab")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.evidenceTab)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.tabWidget.addTab(self.evidenceTab, "")
        self.verticalLayout.addWidget(self.tabWidget)
        self.buttonBox = QtWidgets.QDialogButtonBox(MetaboliteEditDialog)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel
                                          | QtWidgets.QDialogButtonBox.Save)
        self.buttonBox.setObjectName("buttonBox")
        self.verticalLayout.addWidget(self.buttonBox)

        self.retranslateUi(MetaboliteEditDialog)
        self.tabWidget.setCurrentIndex(0)
        self.buttonBox.accepted.connect(MetaboliteEditDialog.accept)
        self.buttonBox.rejected.connect(MetaboliteEditDialog.reject)
        QtCore.QMetaObject.connectSlotsByName(MetaboliteEditDialog)

    def retranslateUi(self, MetaboliteEditDialog):
        _translate = QtCore.QCoreApplication.translate
        MetaboliteEditDialog.setWindowTitle(
            _translate("MetaboliteEditDialog", "Edit metabolite"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.reactionsTab),
            _translate("MetaboliteEditDialog", "Reactions"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.annotationTab),
            _translate("MetaboliteEditDialog", "Annotation"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.evidenceTab),
            _translate("MetaboliteEditDialog", "Evidence"))
Beispiel #3
0
    def test_changed_triggered_addition(self):
        widget = EvidenceDisplayWidget()
        reaction = Reaction()
        model = Model()
        widget.set_item(reaction, model)
        mock = Mock()
        widget.changed.connect(mock.test)

        assert mock.test.called is False
        assert widget.dataTable.rowCount() == 0
        QtTest.QTest.mouseClick(widget.add_button, QtCore.Qt.LeftButton)
        assert widget.dataTable.rowCount() == 1
        assert mock.test.called is True
Beispiel #4
0
    def test_set_item(self):
        widget = EvidenceDisplayWidget()
        evidence = Evidence()
        reaction = Reaction()
        model = Model()
        evidence.set_entity(reaction)
        widget.set_item(reaction, model)

        # Check that a copy of the evidence has been added to the table
        assert widget.dataTable.rowCount() == 1
        assert widget.dataTable.item(0).link is not evidence
        assert widget.dataTable.item(
            0).link.internal_id == evidence.internal_id
Beispiel #5
0
    def test_changed_triggered_deletion(self):
        widget = EvidenceDisplayWidget()
        evidence = Evidence()
        reaction = Reaction()
        model = Model()
        evidence.set_entity(reaction)
        widget.set_item(reaction, model)
        mock = Mock()
        widget.changed.connect(mock.test)

        assert mock.test.called is False
        assert widget.dataTable.rowCount() == 1
        widget.dataView.selectRow(0)
        QtTest.QTest.mouseClick(widget.delete_button, QtCore.Qt.LeftButton)
        assert widget.dataTable.rowCount() == 0
        assert mock.test.called is True
Beispiel #6
0
 def test_setup(self):
     widget = EvidenceDisplayWidget()
     assert widget.dataTable.rowCount() == 0
     assert widget.item is None
     assert widget.model is None
     assert widget.dataView.model() is widget.dataTable
     assert widget.content_changed is False
Beispiel #7
0
    def setupUi(self, GeneEditDialog):
        GeneEditDialog.setObjectName("GeneEditDialog")
        GeneEditDialog.resize(260, 182)
        self.verticalLayout = QtWidgets.QVBoxLayout(GeneEditDialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.attributeWidget = GeneAttributesDisplayWidget(GeneEditDialog)
        self.attributeWidget.setObjectName("attributeWidget")
        self.verticalLayout.addWidget(self.attributeWidget)
        self.tabWidget = QtWidgets.QTabWidget(GeneEditDialog)
        self.tabWidget.setObjectName("tabWidget")
        self.reactionTab = ReactionsDisplayWidget()
        self.reactionTab.setObjectName("reactionTab")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.reactionTab)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.tabWidget.addTab(self.reactionTab, "")
        self.tab_annotations = AnnotationDisplayWidget()
        self.tab_annotations.setObjectName("tab_annotations")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.tab_annotations)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.tabWidget.addTab(self.tab_annotations, "")
        self.evidenceTab = EvidenceDisplayWidget()
        self.evidenceTab.setObjectName("evidenceTab")
        self.tabWidget.addTab(self.evidenceTab, "")
        self.verticalLayout.addWidget(self.tabWidget)
        self.buttonBox = QtWidgets.QDialogButtonBox(GeneEditDialog)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel
                                          | QtWidgets.QDialogButtonBox.Save)
        self.buttonBox.setObjectName("buttonBox")
        self.verticalLayout.addWidget(self.buttonBox)

        self.retranslateUi(GeneEditDialog)
        self.tabWidget.setCurrentIndex(0)
        self.buttonBox.accepted.connect(GeneEditDialog.accept)
        self.buttonBox.rejected.connect(GeneEditDialog.reject)
        QtCore.QMetaObject.connectSlotsByName(GeneEditDialog)
Beispiel #8
0
    def test_saving_changes(self):
        reaction = Reaction()
        reference = Reference()
        model = Model()
        evidence = Evidence(entity=reaction)
        evidence.add_reference(reference)
        widget = EvidenceDisplayWidget()

        model.all_evidences[evidence.internal_id] = evidence

        assert evidence in reaction.evidences
        assert evidence.internal_id in model.all_evidences
        assert reference in evidence.references

        # Set reaction and model to widget
        widget.set_item(reaction, model)
        assert widget.dataTable.rowCount() == 1

        # Remove evidence copy from data table
        widget.dataTable.setRowCount(0)

        # Setup new evidence item
        new_evidence = Evidence()
        new_evidence.assertion = "Catalyzed by"
        new_evidence.entity = reaction

        reference = Reference()
        new_evidence.add_reference(reference, reciprocal=False)

        # Test the setup i.e. that items are only linked in a one way (evidence -> item) fashion
        assert new_evidence not in reaction.evidences
        assert new_evidence not in reference.linked_items

        # Add new reference to widget table
        widget.dataTable.update_row_from_item(new_evidence)
        assert widget.dataTable.rowCount() == 1
        assert widget.dataTable.item(0).link is new_evidence

        # Action - Save evidences
        widget.save_state()

        # Check that old instance is detached from all links
        assert evidence not in reaction.evidences
        assert len(evidence.references) == 0

        # Old evidence still kept alive by this test
        old_id = evidence.internal_id
        assert old_id in model.all_evidences
        evidence = None
        gc.collect()
        assert old_id not in model.all_evidences

        # Check that new evidence is linked properly
        assert new_evidence in reaction.evidences
        assert new_evidence.internal_id in model.all_evidences
Beispiel #9
0
    def test_changed_triggered_edition(self):
        widget = EvidenceDisplayWidget()
        evidence = Evidence()
        reaction = Reaction()
        model = Model()
        evidence.set_entity(reaction)
        reaction.add_evidence(evidence)
        widget.set_item(reaction, model)
        mock = Mock()
        widget.changed.connect(mock.test)

        assert mock.test.called is False
        assert widget.dataTable.rowCount() == 1
        widget.dataView.selectRow(0)
        widget.edit_item()
        assert widget.dataTable.rowCount() == 1
        assert mock.test.called is True