Пример #1
0
    def test_get_next_article(self):
        """
        Teste da função utils.get_next_article().
        """

        article1 = utils.makeOneArticle({'order': '1', })
        article2 = utils.makeOneArticle({'order': '2', })
        article3 = utils.makeOneArticle({'order': '3', })

        # criando uma lista de artigos ordenada
        articles = [article1, article2, article3]

        next_article = wutils.get_next_article(articles, article2)

        self.assertEqual(next_article, article3)
Пример #2
0
    def test_the_title_of_the_article_list_when_language_EN(self):
        """
        Teste para verificar se a interface do TOC esta retornando o título no
        idioma Inglês.
        """
        journal = utils.makeOneJournal()

        with self.client as c:
            # Criando uma coleção para termos o objeto ``g`` na interface
            collection = utils.makeOneCollection()

            issue = utils.makeOneIssue({"journal": journal})

            translated_titles = [
                {"name": "Artigo Com Título Em Português", "language": "pt"},
                {"name": "Título Del Artículo En Portugués", "language": "es"},
                {"name": "Article Title In Portuguese", "language": "en"},
            ]

            article = utils.makeOneArticle(
                {"issue": issue, "title": "Article Y", "translated_titles": translated_titles}
            )

            header = {
                "Referer": url_for("main.issue_toc", url_seg=journal.url_segment, url_seg_issue=issue.url_segment)
            }

            response = c.get(url_for("main.set_locale", lang_code="en"), headers=header, follow_redirects=True)

            self.assertEqual(200, response.status_code)

            self.assertEqual(flask.session["lang"], "en")

            self.assertIn(u"Article Title In Portuguese", response.data.decode("utf-8"))
Пример #3
0
    def test_the_title_of_the_article_list_without_unknow_language_for_article(self):
        """
        Teste para verificar se a interface do TOC esta retornando o título no
        idioma original quando não conhece o idioma.
        """
        journal = utils.makeOneJournal()

        with self.client as c:
            # Criando uma coleção para termos o objeto ``g`` na interface
            collection = utils.makeOneCollection()

            issue = utils.makeOneIssue({"journal": journal})

            translated_titles = []

            article = utils.makeOneArticle(
                {"issue": issue, "title": "Article Y", "translated_titles": translated_titles}
            )

            header = {
                "Referer": url_for("main.issue_toc", url_seg=journal.url_segment, url_seg_issue=issue.url_segment)
            }

            response = c.get(url_for("main.set_locale", lang_code="es_MX"), headers=header, follow_redirects=True)

            self.assertEqual(200, response.status_code)

            self.assertEqual(flask.session["lang"], "es_MX")

            self.assertIn(u"Article Y", response.data.decode("utf-8"))
Пример #4
0
 def _makeOne(self, attrib=None):
     """
     Retorna um objeto ``Article`` com os atributos obrigatórios:
     ``_id``, ``jid``, ``is_public`` e ``issue`` o param ``attrib`` atualiza
     os atributos do objeto.
     """
     return utils.makeOneArticle(attrib=attrib)
Пример #5
0
    def test_get_prev_article_when_first_article(self):
        """
        Teste da função utils.get_prev_article(), quando é o primeiro artigo
        deve retorna None.
        """

        article1 = utils.makeOneArticle({'order': '1', })
        article2 = utils.makeOneArticle({'order': '2', })
        article3 = utils.makeOneArticle({'order': '3', })

        # criando uma lista de artigos ordenada
        articles = [article1, article2, article3]

        prev_article = wutils.get_prev_article(articles, article1)

        self.assertIsNone(prev_article)
Пример #6
0
    def test_get_next_article_when_last_article(self):
        """
        Teste da função utils.get_next_article(), quando é o último artigo
        deve retorna None.
        """

        article1 = utils.makeOneArticle({'order': '1', })
        article2 = utils.makeOneArticle({'order': '2', })
        article3 = utils.makeOneArticle({'order': '3', })

        # criando uma lista de artigos ordenada
        articles = [article1, article2, article3]

        next_article = wutils.get_next_article(articles, article3)

        self.assertIsNone(next_article)
Пример #7
0
    def test_article_detail_with_journal_attrib_is_public_false(self):
        """
        Teste da ``view function`` ``article_detail`` acessando um artigo
        com atributo is_public=True, porém com um periódico com atributo
        is_public=False deve retorna uma página com ``status_code`` 404 e msg
        cadastrada no atributo ``reason`` do periódico.
        """

        journal = utils.makeOneJournal({
            'is_public': False,
            'unpublish_reason': 'Revista removida da coleção'})

        issue = utils.makeOneIssue({
            'is_public': True,
            'journal': journal.id})

        article = utils.makeOneArticle({
            'issue': issue.id,
            'journal': journal.id})

        response = self.client.get(url_for('main.article_detail',
                                           article_id=article.id))

        self.assertStatus(response, 404)
        self.assertIn(u'Revista removida da coleção', response.data.decode('utf-8'))
Пример #8
0
    def test_article_detail_with_article_attrib_is_public_false(self):
        """
        Teste da ``view function`` ``article_detail`` acessando um artigo
        com atributo is_public=False, deve retorna uma página com
         ``status_code`` 404 e msg cadastrada no atributo ``reason`` do artigo.
        """

        journal = utils.makeOneJournal()

        issue = utils.makeOneIssue({'journal': journal.id})

        article = utils.makeOneArticle({
            'is_public': False,
            'unpublish_reason': 'Artigo com problemas de licença',
            'issue': issue,
            'journal': journal})

        response = self.client.get(url_for('main.article_detail',
                                           url_seg=journal.url_segment,
                                           url_seg_issue=issue.url_segment,
                                           url_seg_article=article.url_segment,
                                           lang_code='pt'))

        self.assertStatus(response, 404)
        self.assertIn(u'Artigo com problemas de licença', response.data.decode('utf-8'))
Пример #9
0
    def test_article_detail(self):
        """
        Teste da ``view function`` ``article_detail``, deve retornar uma página
        que usa o template ``article/detail.html``.
        """
        with current_app.app_context():

            collection = utils.makeOneCollection()

            resource = utils.makeOneResource()

            journal = utils.makeOneJournal()

            issue = utils.makeOneIssue({'journal': journal})

            article = utils.makeOneArticle({'title': 'Article Y',
                                            'htmls': [resource],
                                            'issue': issue,
                                            'journal': journal,
                                            'url_segment': '10-11'})

            response = self.client.get(url_for('main.article_detail',
                                               url_seg=journal.url_segment,
                                               url_seg_issue=issue.url_segment,
                                               url_seg_article=article.url_segment,
                                               lang_code='pt'))

            self.assertStatus(response, 200)
            self.assertTemplateUsed('article/detail.html')
            self.assertEqual(self.get_context_variable('article').id, article.id)
            self.assertEqual(self.get_context_variable('journal').id, article.journal.id)
            self.assertEqual(self.get_context_variable('issue').id, article.issue.id)
Пример #10
0
    def test_article_html_by_aid_without_html(self):
        """
        Teste da ``view function`` ``article_html_by_aid``, deve retornar uma
        página 404 com a msg ``HTML do artigo não encontrado``.
        """

        article = utils.makeOneArticle({'title': 'Article Y'})

        response = self.client.get(url_for('main.article_html_by_aid',
                                           article_id=article.id))

        self.assertStatus(response, 404)
        self.assertIn(u'HTML do artigo não encontrado', response.data.decode('utf-8'))
Пример #11
0
    def test_article_detail(self):
        """
        Teste da ``view function`` ``article_detail``, deve retornar uma página
        que usa o template ``article/detail.html``.
        """

        article = utils.makeOneArticle({'title': 'Article Y'})

        response = self.client.get(url_for('main.article_detail',
                                           article_id=article.id))
        self.assertStatus(response, 200)
        self.assertTemplateUsed('article/detail.html')
        self.assertEqual(self.get_context_variable('article').id, article.id)
        self.assertEqual(self.get_context_variable('journal').id, article.journal.id)
        self.assertEqual(self.get_context_variable('issue').id, article.issue.id)
Пример #12
0
    def test_article_html_by_aid(self):
        """
        Teste da ``view function`` ``article_html_by_aid``, deve retornar o HTML
        do artigo.
        """

        article_attrib = {'title': 'Article Y',
                          'htmls': [
                                {
                                    'language': "pt",
                                    'source': "<!DOCTYPE html><html lang=\"pt\"><head><title>Cad Saude Publica - As Ci\\u00eancias Sociais e Humanas em Sa\\u00fade na ABRASCO: a\\n\\t\\t\\t\\t\\tconstru\\u00e7\\u00e3o de um pensamento social em sa\\u00fade</title></head><body></body></html>"
                                }
                            ]}
        article = utils.makeOneArticle(article_attrib)

        response = self.client.get(url_for('main.article_html_by_aid',
                                           article_id=article.id))

        self.assertStatus(response, 200)
        self.assertIn(u'Cad Saude Publica', response.data.decode('utf-8'))
Пример #13
0
    def test_abstract_detail_with_article_attrib_is_public_false(self):
        """
        Teste da ``view function`` ``abstract_detail`` acessando o resumo do
        artigo com atributo is_public=False, deve retorna uma página com
         ``status_code`` 404 e msg cadastrada no atributo ``reason`` do artigo.
        """

        journal = utils.makeOneJournal()

        issue = utils.makeOneIssue({'journal': journal.id})

        article = utils.makeOneArticle({
            'is_public': False,
            'unpublish_reason': 'Resumo incorreto',
            'issue': issue.id,
            'journal': journal.id})

        response = self.client.get(url_for('main.abstract_detail',
                                           article_id=article.id))

        self.assertStatus(response, 404)
        self.assertIn(u'Resumo incorreto', response.data.decode('utf-8'))
Пример #14
0
    def test_abstract_detail(self):
        """
        Teste da ``view function`` ``abstract_detail``, deve retornar o HTML
        do artigo.
        """

        article_attrib = {'title': 'Article Y',
                          'htmls': [
                                {
                                    'language': "pt",
                                    'source': "<!DOCTYPE html><html lang=\"pt\"><head><title>Cad Saude Publica - As Ci\\u00eancias Sociais e Humanas em Sa\\u00fade na ABRASCO: a\\n\\t\\t\\t\\t\\tconstru\\u00e7\\u00e3o de um pensamento social em sa\\u00fade</title></head><body></body></html>"
                                }
                            ]}
        article = utils.makeOneArticle(article_attrib)

        response = self.client.get(url_for('main.abstract_detail',
                                           article_id=article.id))

        self.assertStatus(response, 200)
        self.assertEqual(self.get_context_variable('article').id, article.id)
        self.assertEqual(self.get_context_variable('journal').id, article.journal.id)
        self.assertEqual(self.get_context_variable('issue').id, article.issue.id)
Пример #15
0
    def test_count_elements_by_type_and_visibility_article_public_only(self):
        """
        Testando a função count_elements_by_type_and_visibility() com 98
        artigos cadastrados com atributo puclic=true e 6 public=false,
        deve retornar apenas 20 artigo(somente os artigos marcados como
        publicos).
        """

        utils.makeAnyArticle(items=98)
        utils.makeOneArticle({'is_public': False})
        utils.makeOneArticle({'is_public': False})
        utils.makeOneArticle({'is_public': False})
        utils.makeOneArticle({'is_public': False})
        utils.makeOneArticle({'is_public': False})
        utils.makeOneArticle({'is_public': False})

        total_article = controllers.count_elements_by_type_and_visibility('article', public_only=True)

        self.assertEqual(total_article, 98)