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)
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"))
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"))
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)
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)
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)
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'))
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'))
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)
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'))
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)
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'))
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'))
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)
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)