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