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'))