def test_count_elements_by_type_and_visibility_type_journal(self): """ Testando a função count_elements_by_type_and_visibility() com 20 periódicos cadastrados, deve retornar apenas 20 periódicos. """ utils.makeAnyJournal(items=20) total_journal = controllers.count_elements_by_type_and_visibility('journal') self.assertEqual(total_journal, 20)
def test_collection_list_feed(self): """ Teste para verificar a reposta da ``view funciton``collection_list_feed Se cadastra 10 periódicos, deve retornar na interface do rss, utilizando o template ``collection/list_feed_content.html```. """ with current_app.app_context(): collection = utils.makeOneCollection() journals = utils.makeAnyJournal(items=10) issues = [] for journal in journals: issue = utils.makeOneIssue({'journal': journal.id}) utils.makeAnyArticle( issue=issue, attrib={'journal': journal.id, 'issue': issue.id} ) issues.append(issue) response = self.client.get(url_for('main.collection_list_feed')) self.assertStatus(response, 200) self.assertTemplateUsed('collection/list_feed_content.html') for journal in journals: self.assertIn('%s' % journal.url_segment, response.data.decode('utf-8')) for issue in issues: self.assertIn('%s' % issue.url_segment, response.data.decode('utf-8'))
def test_count_elements_by_type_and_visibility_journal_public_only(self): """ Testando a função count_elements_by_type_and_visibility() com 20 periódicos cadastrados com atributo puclic=true e 6 public=false, deve retornar apenas 20 periódicos(somente os periódicos marcados como publicos). """ utils.makeAnyJournal(items=20) utils.makeOneJournal({'is_public': False}) utils.makeOneJournal({'is_public': False}) utils.makeOneJournal({'is_public': False}) utils.makeOneJournal({'is_public': False}) utils.makeOneJournal({'is_public': False}) utils.makeOneJournal({'is_public': False}) total_journal = controllers.count_elements_by_type_and_visibility('journal', public_only=True) self.assertEqual(total_journal, 20)
def test_collection_list_theme(self): """ Teste para avaliar o retorno da ``view function`` collection_list_theme ao cadastrarmos 60 periódico a interface deve retornar uma listagem contendo elementos esperado tambémdeve retornar o template ``collection/list_theme.html``. """ journals = utils.makeAnyJournal(items=30, attrib={"study_areas": ["Engineering"]}) journals = utils.makeAnyJournal(items=30, attrib={"study_areas": ["Human Sciences", "Biological Sciences", "Engineering"]}) response = self.client.get(url_for('main.collection_list_theme')) self.assertStatus(response, 200) self.assertTemplateUsed('collection/list_theme.html') for journal in journals: self.assertIn('journals/%s' % journal.id, response.data.decode('utf-8'))
def test_journal_detail_with_unknow_id(self): """ Teste da ``view function`` ``journal_detail`` com um id desconhecido deve retornar uma página com ``status_code`` 404 e msg ``Periódico não encontrado``. """ journals = utils.makeAnyJournal(items=6) unknow_id = '0k2qhs8slwnui8' response = self.client.get(url_for('main.journal_detail', journal_id=unknow_id)) self.assertStatus(response, 404) self.assertIn(u'Periódico não encontrado', response.data.decode('utf-8'))
def test_collection_list_feed_without_issues(self): """ Teste para verificar a reposta da ``view funciton``collection_list_feed Se cadastra 10 periódicos sem fascículo, deve retornar na interface do rss, utilizando o template ``collection/list_feed_content.html```. """ with current_app.app_context(): collection = utils.makeOneCollection() journals = utils.makeAnyJournal(items=10) response = self.client.get(url_for('main.collection_list_feed')) self.assertStatus(response, 200) self.assertTemplateUsed('collection/list_feed_content.html') for journal in journals: self.assertIn('%s' % journal.url_segment, response.data.decode('utf-8'))
def test_collection_list_alpha(self): """ Teste para avaliar o retorno da ``view function`` collection_list_alpha, ao cadastrarmos 10 periódico a interface deve retornar uma listagem contendo elementos esperado também deve retornar o template ``collection/list_alpha.html``. """ journals = utils.makeAnyJournal(items=10) response = self.client.get(url_for('main.collection_list_alpha')) self.assertStatus(response, 200) self.assertTemplateUsed('collection/list_alpha.html') for journal in journals: self.assertIn('journals/%s' % journal.id, response.data.decode('utf-8')) self.assertListEqual(sorted([journal.id for journal in journals]), sorted([journal.id for journal in self.get_context_variable('journals')]))
def _makeAny(self, items=3): """ Retorna uma lista de objetos ``Journal`` com atributos ``jid``, ``is_public`` e ``acronym`` limitando a quantidade pelo param ``items``. """ return utils.makeAnyJournal(items=items)