Пример #1
0
    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])
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
    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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
    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)
Пример #8
0
 def author(self):
     return Author(self.lastnameLineEdit.text(),
                   self.firstnameLineEdit.text(),
                   self.initialsLineEdit.text())
Пример #9
0
 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"
Пример #10
0
 def test_setup(self):
     author = Author("lastname", "firstname", "initials")
     assert author.lastname == "lastname"
     assert author.firstname == "firstname"
     assert author.initials == "initials"
     assert Author() == ("", "", "")
Пример #11
0
 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"