def setup_items(self): self.table = ReferenceTable() self.author1 = Author(lastname="FirstLast", firstname="FirstFirst", initials="FirstInitials") self.author2 = Author(lastname="SecondLast", firstname="SecondFirst", initials="SecondInitials") self.pmid = "123456" self.pmc = "PMC12345" self.url = "http://www.google.com" self.journal = "Test journal" self.year = "1987" self.title = "Test title" self.doi = "Test doi" self.reference = Reference(pmid=self.pmid, pmc=self.pmc, doi=self.doi, url=self.url, year=self.year, title=self.title, journal=self.journal, authors=[self.author1, self.author2])
def setup_items(self): self.first_author = Author(lastname="FirstLastname", firstname="FirstFirstname", initials="FirstInitials") self.second_author = Author(lastname="SecondLastname", firstname="SecondFirstname", initials="SecondInitials") self.authors = [self.first_author, self.second_author] self.test_pmid = "123456" self.test_pmc = "PMC12345" self.test_doi = "10.1016/j.chemosphere.2016.03.102" self.test_url = "http://google.com" self.test_year = "1999" self.test_title = "Test title" self.test_journal = "Test journal" self.test_ref_id = "Test_id" self.reference = Reference(id=self.test_ref_id, pmid=self.test_pmid, pmc=self.test_pmc, doi=self.test_doi, url=self.test_url, year=self.test_year, title=self.test_title, journal=self.test_journal, authors=self.authors) self.model = Model("Test") self.model.references[self.reference.id] = self.reference
def test_author_string4(self): """ Test correct string for 3 authors """ self.empty_reference.authors = [ Author("Family1", "", "Initials1"), Author("Family2", "", "Initials2"), Author("Family3", "", "Initials3") ] self.empty_reference.year = "2015" expected = "Family1 Initials1 et al., 2015" assert self.empty_reference.reference_string() == expected
def test_author_string3(self): """ Test correct string for two authors """ self.empty_reference.authors = [ Author("FamilyFirst", "", "InitialsFirst"), Author("FamilySecond", "", "InitialsSecond") ] self.empty_reference.year = "2015" expected = "FamilyFirst InitialsFirst and FamilySecond InitialsSecond, 2015" assert self.empty_reference.reference_string() == expected
def parse_author_node(node): """ Parse author node of pubmed xml response Parameters ---------- node : XML node or None Returns ------- result: list or None """ if node is None: return result = [] for element in node.getchildren(): lastname, forename, initials = "", "", "" lastname_node = element.find("LastName") if lastname_node is not None: lastname = lastname_node.text forename_node = element.find("ForeName") if forename_node is not None: forename = forename_node.text initials_node = element.find("Initials") if initials_node is not None: initials = initials_node.text result.append(Author(lastname, forename, initials)) return result
def parse_references(model_node, model=None, progress=None): reference_list_node = model_node.find(ge_listOfReferences) if reference_list_node is None: return elif progress is None: pass elif not progress.wasCanceled(): progress.setLabelText("Reading references...") progress.setRange(0, len(reference_list_node)) elif progress.wasCanceled(): return references = [] for i, reference_node in enumerate( reference_list_node.iterfind(ge_reference)): if progress is None: pass elif not progress.wasCanceled(): progress.setValue(i) QApplication.processEvents() else: return new_reference = Reference(id=reference_node.get("id"), year=reference_node.get("year"), title=reference_node.get("title"), journal=reference_node.get("journal"), url=reference_node.get("url")) author_list_node = reference_node.find(ge_listOfAuthors) if author_list_node is not None: authors = [] for child in author_list_node.iterfind(ge_author): authors.append( Author(firstname=child.get("firstname"), lastname=child.get("lastname"), initials=child.get("initials"))) new_reference.authors = authors annotation = annotate_element_from_xml(reference_node) if annotation: for x in annotation: if x.collection == "pubmed": new_reference.pmid = x.identifier elif x.collection == "pmc": new_reference.pmc = x.identifier elif x.collection == "doi": new_reference.doi = x.identifier if model is None: references.append(new_reference) else: model.add_reference(new_reference) return references
def setup_items(self): self.table = AuthorTable() self.firstname = "test firstname" self.lastname = "test lastname" self.initials = "test initials" self.author = Author(lastname=self.lastname, firstname=self.firstname, initials=self.initials)
def author(self): return Author(self.lastnameLineEdit.text(), self.firstnameLineEdit.text(), self.initialsLineEdit.text())
def test_author_str(self): """ Check author_str property returns the proper value""" assert Author(lastname="Last", initials="P", firstname="").display_str == "Last P" assert Author("Last", "", "").display_str == "Last"
def test_setup(self): author = Author("lastname", "firstname", "initials") assert author.lastname == "lastname" assert author.firstname == "firstname" assert author.initials == "initials" assert Author() == ("", "", "")
def test_author_string2(self): """ Test correct string for single author """ self.empty_reference.authors = [Author("Family", "First", "Initials")] self.empty_reference.year = "2015" assert self.empty_reference.reference_string( ) == "Family Initials, 2015"