Exemple #1
0
    def validate(self):
        """TODO: Validation should be peformed by underlying data objects"""
        if self.fields.get("type"):
            if not self.fields["type"][3].get() or \
            not self.fields["name"][3].get():
                title = "Empty Fields"
                message = "Please fill in all fields."
                tkMessageBox.showerror(title,message,parent=self)

                return False

            if self.fields["type"][3].get() == 'sequences':
                if getConfig().getDataItems(xlinkanalyzer.SEQUENCES_DATA_TYPE):
                    title = "Error"
                    message = "You cannot add more than one Sequence file."
                    tkMessageBox.showerror(title,message,parent=self)

                    return False                

        if hasattr(self.data, 'ranges') and hasattr(self.data, 'subunit'): #i.e. is is a domain
            wrong = False
            missingFields = []
            message = ''
            if not self.fields["name"][3].get():
                missingFields.append('name')
                wrong = True

            if not self.fields["subunit"][3].get():
                missingFields.append('subunit')
                wrong = True
            if not self.fields["ranges"][3].get():
                missingFields.append('ranges')
                wrong = True

            if not wrong:
                try:
                    self.data.parseRanges(self.fields["ranges"][3].get())
                except DomainRangesException, e:
                    message = str(e)
                    wrong = True

            if wrong:
                title = "Error"
                if not message:
                    message = "Missing {0} for the domain.".format(', '.join(missingFields))
                out = tkMessageBox.showerror(title,message,parent=self)

                return False
    def testThis(self):
        from xlinkanalyzer.data import SubunitMatcher
        s = SubunitMatcher(xla.getConfig())
        self.assertEqual('dna-directed rna polymerase I subunit RPA34',
                        s.getSubunit('sp|P47006|RPA34_YEAST').name)

        self.assertEqual('dna-directed rna polymerase I subunit RPA34',
                        s.getSubunit('sp|P47006|RPA34_YEAST blashsdf').name)

        self.assertEqual('dna-directed rna polymerase I subunit RPA34',
                        s.getSubunit('P47006').name)

        self.assertEqual('dna-directed rna polymerase I subunit RPA34',
                        'dna-directed rna polymerase I subunit RPA34')

        self.assertIsNone(s.getSubunit('47006'))