def test_correction_linkage(self):
        correction = models.Article.parse(modelfactories.SAMPLE_XML_RELATED)
        correction.save()

        related_article_node = correction.xml.xpath(
                correction.XPaths.RELATED_CORRECTED_ARTICLES)[0]

        link_to_article = related_article_node.attrib['{http://www.w3.org/1999/xlink}href']

        article = modelfactories.ArticleFactory.create(doi=link_to_article)

        tasks.link_article_with_their_related(correction.pk)

        self.assertTrue(models.Article.objects.get(
            pk=correction.pk).links_to.get(link_to=article))
    def test_correction_linkage_is_idempotent(self):
        correction = modelfactories.ArticleFactory.create(
                xml=modelfactories.SAMPLE_XML_RELATED)

        related_article_node = correction.xml.xpath(
                correction.XPaths.RELATED_CORRECTED_ARTICLES)[0]

        link_to_article = related_article_node.attrib['{http://www.w3.org/1999/xlink}href']

        article = modelfactories.ArticleFactory.create(doi=link_to_article)

        tasks.link_article_with_their_related(correction.pk)
        tasks.link_article_with_their_related(correction.pk)

        self.assertEquals(1, models.Article.objects.get(
            pk=correction.pk).links_to.filter(link_to=article).count())
Exemple #3
0
    def test_correction_linkage(self):
        correction = models.Article.parse(modelfactories.SAMPLE_XML_RELATED)
        correction.save()

        related_article_node = correction.xml.xpath(
            correction.XPaths.RELATED_CORRECTED_ARTICLES)[0]

        link_to_article = related_article_node.attrib[
            '{http://www.w3.org/1999/xlink}href']

        article = modelfactories.ArticleFactory.create(doi=link_to_article)

        tasks.link_article_with_their_related(correction.pk)

        self.assertTrue(
            models.Article.objects.get(pk=correction.pk).links_to.get(
                link_to=article))
    def test_duplicated_articles_clear_related_articles(self):
        correction = models.Article.parse(modelfactories.SAMPLE_XML_RELATED)
        correction.save()

        related_article_node = correction.xml.xpath(
                correction.XPaths.RELATED_CORRECTED_ARTICLES)[0]

        link_to_article = related_article_node.attrib['{http://www.w3.org/1999/xlink}href']

        article = modelfactories.ArticleFactory.create(doi=link_to_article)

        tasks.link_article_with_their_related(correction.pk)

        self.assertTrue(models.Article.objects.get(
            pk=correction.pk).links_to.get(link_to=article))

        # Agora a instância será sobrescrita
        new_aid = tasks.create_article_from_string(
                modelfactories.SAMPLE_XML_RELATED.decode('utf-8'),
                overwrite_if_exists=True)
        new_correction = models.Article.objects.get(aid=new_aid)
        self.assertEquals(new_correction.links_to.all().count(), 0)
Exemple #5
0
    def test_duplicated_articles_clear_related_articles(self):
        correction = models.Article.parse(modelfactories.SAMPLE_XML_RELATED)
        correction.save()

        related_article_node = correction.xml.xpath(
            correction.XPaths.RELATED_CORRECTED_ARTICLES)[0]

        link_to_article = related_article_node.attrib[
            '{http://www.w3.org/1999/xlink}href']

        article = modelfactories.ArticleFactory.create(doi=link_to_article)

        tasks.link_article_with_their_related(correction.pk)

        self.assertTrue(
            models.Article.objects.get(pk=correction.pk).links_to.get(
                link_to=article))

        # Agora a instância será sobrescrita
        new_aid = tasks.create_article_from_string(
            modelfactories.SAMPLE_XML_RELATED.decode('utf-8'),
            overwrite_if_exists=True)
        new_correction = models.Article.objects.get(aid=new_aid)
        self.assertEquals(new_correction.links_to.all().count(), 0)