Ejemplo n.º 1
0
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"))
Ejemplo n.º 2
0
    def test_setting_item(self):
        metabolite = Metabolite("test_id", "H2O", "Test metabolie", -5, "m")
        model = Model()

        widget = MetaboliteAttributesDisplayWidget()

        # Test prestate
        assert widget.iDLineEdit.text() == ""
        assert widget.nameLineEdit.text() == ""
        assert widget.compartmentComboBox.currentText() == ""
        assert widget.chargeSpinBox.value() == 0
        assert widget.formulaLineEdit.text() == ""

        widget.set_item(metabolite, model)

        assert widget.iDLineEdit.text() == metabolite.id
        assert widget.nameLineEdit.text() == metabolite.name
        assert widget.compartmentComboBox.currentText(
        ) == metabolite.compartment
        assert widget.chargeSpinBox.value() == metabolite.charge
        assert widget.formulaLineEdit.text() == metabolite.formula

        assert widget.valid_inputs() is True
        assert widget.content_changed is False

        widget.set_item(None, model)

        assert widget.iDLineEdit.text() == ""
        assert widget.nameLineEdit.text() == ""
        assert widget.compartmentComboBox.currentText() == ""
        assert widget.chargeSpinBox.value() == 0.
        assert widget.formulaLineEdit.text() == ""

        assert widget.valid_inputs() is False
        assert widget.content_changed is False
Ejemplo n.º 3
0
    def test_changing_id(self):
        metabolite = Metabolite(compartment="m")
        model = Model()

        widget = MetaboliteAttributesDisplayWidget()
        widget.set_item(metabolite, model)
        assert widget._id_valid is False

        QtTest.QTest.keyClick(widget.iDLineEdit, "V")
        assert widget._id_valid is True

        QtTest.QTest.keyClick(widget.iDLineEdit, "a")
        assert widget._id_valid is True

        QtTest.QTest.keyClick(widget.iDLineEdit, "#")
        assert widget._id_valid is False
Ejemplo n.º 4
0
    def test_changed_triggered_by_charge_change(self):
        widget = MetaboliteAttributesDisplayWidget()
        mock = Mock()
        widget.changed.connect(mock.test)

        assert mock.test.called is False
        QtTest.QTest.keyClicks(widget.formulaLineEdit, "3")
        assert mock.test.called is True
Ejemplo n.º 5
0
    def test_changing_formula(self):
        metabolite = Metabolite(id="m1", compartment="m")
        model = Model()

        widget = MetaboliteAttributesDisplayWidget()
        widget.set_item(metabolite, model)
        assert widget._id_valid is True

        # Check empty formula is valid
        assert widget._formula_valid is True

        QtTest.QTest.keyClick(widget.formulaLineEdit, "C")
        assert widget._formula_valid is True

        QtTest.QTest.keyClick(widget.formulaLineEdit, "2")
        assert widget._formula_valid is True

        QtTest.QTest.keyClick(widget.formulaLineEdit, "(")
        assert widget._formula_valid is False
Ejemplo n.º 6
0
    def test_changed_triggered_by_compartment_change(self):
        widget = MetaboliteAttributesDisplayWidget()
        mock = Mock()
        widget.compartmentComboBox.addItem("m")
        widget.compartmentComboBox.setCurrentIndex(-1)
        widget.changed.connect(mock.test)

        assert mock.test.called is False
        QtTest.QTest.keyClick(widget.compartmentComboBox, QtCore.Qt.Key_Down)
        assert mock.test.called is True
Ejemplo n.º 7
0
    def test_save_state_new_metabolite(self):
        metabolite = Metabolite()
        model = Model()

        widget = MetaboliteAttributesDisplayWidget()
        widget.set_item(metabolite, model)

        new_id = "New"
        new_name = "Name"
        new_charge = 2.
        new_formula = "H20"
        new_compartment = "c"

        widget.iDLineEdit.setText(new_id)
        widget.nameLineEdit.setText(new_name)
        widget.chargeSpinBox.setValue(new_charge)
        widget.formulaLineEdit.setText(new_formula)
        widget.compartmentComboBox.addItem(new_compartment)
        widget.compartmentComboBox.setCurrentText(new_compartment)

        widget.save_state()

        assert metabolite.id == new_id
        assert metabolite.name == new_name
        assert metabolite.charge == new_charge
        assert metabolite.formula == new_formula
        assert metabolite.compartment == new_compartment

        assert metabolite in model.metabolites
        assert metabolite in model.QtMetaboliteTable.get_items()
Ejemplo n.º 8
0
    def test_save_state_existing_metabolite(self):
        metabolite = Metabolite(id="m1",
                                charge=1,
                                name="old name",
                                formula="O2",
                                compartment="c")
        model = Model()
        model.gem_add_metabolites((metabolite, ))
        widget = MetaboliteAttributesDisplayWidget()
        widget.set_item(metabolite, model)

        new_id = "New_id"
        new_name = "New name"
        new_charge = 3.
        new_compartment = "m"
        new_formula = "H2O"

        widget.iDLineEdit.setText(new_id)
        widget.nameLineEdit.setText(new_name)
        widget.chargeSpinBox.setValue(new_charge)
        widget.compartmentComboBox.addItem(new_compartment)
        widget.compartmentComboBox.setCurrentIndex(
            widget.compartmentComboBox.count() - 1)
        widget.formulaLineEdit.setText(new_formula)

        widget.save_state()

        assert metabolite.id == new_id
        assert metabolite.name == new_name
        assert metabolite.charge == new_charge
        assert metabolite.compartment == new_compartment
        assert metabolite.formula == new_formula
        assert model.metabolites.has_id(new_id)
Ejemplo n.º 9
0
    def test_valid_input(self):
        # Note: The compartment needs to be set as valid input
        metabolite = Metabolite(id="test", compartment="m")
        model = Model()

        widget = MetaboliteAttributesDisplayWidget()

        widget.set_item(metabolite, model)
        assert widget.valid_inputs() is True
        widget.iDLineEdit.clear()
        assert widget.valid_inputs() is False