def test_get_next_issue(self): """ Teste da função utils.get_next_issue(). IMPORTANTE: A lista é invertida. """ issue1 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue2 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '2', 'order': '2', }) issue3 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '3', 'order': '3', }) # criando uma lista de números ordenada issues = [issue1, issue2, issue3] next_issue = wutils.get_next_issue(issues, issue2) self.assertEqual(next_issue, issue1)
def test_get_next_issue_when_first_item(self): """ Testando o get_next_issue quando é acessado o primiero índice, deve retorna None. Acessando o primiero item da lista irá retornar None. IMPORTANTE: A lista é invertida. """ issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue2 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '2', 'order': '2', }) issue3 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '3', 'order': '3', }) issue4 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '4', 'order': '4', }) # criando uma lista de fascículos ordenada issues = [issue1, issue2, issue3, issue4] next_issue = wutils.get_next_issue(issues, issue1) self.assertIsNone(next_issue)
def issue_toc(url_seg, url_seg_issue): default_lang = current_app.config.get('BABEL_DEFAULT_LOCALE') section_filter = request.args.get('section', '', type=str) if not session.get('lang'): lang = default_lang else: lang = session.get('lang')[:2] issue = controllers.get_issue_by_url_seg(url_seg, url_seg_issue) if not issue: abort(404, _('Fascículo não encontrado')) if not issue.is_public: abort(404, ISSUE_UNPUBLISH + _(issue.unpublish_reason)) if not issue.journal.is_public: abort(404, JOURNAL_UNPUBLISH + _(issue.journal.unpublish_reason)) journal = issue.journal articles = controllers.get_articles_by_iid(issue.iid, is_public=True) if articles: sections = list(articles.item_frequencies('section').keys()) sections = sorted([k for k in sections if k is not None]) else: sections = [] issues = controllers.get_issues_by_jid(journal.id, is_public=True) if section_filter != '': articles = articles.filter(section__iexact=section_filter) issue_list = [_issue for _issue in issues] previous_issue = utils.get_prev_issue(issue_list, issue) next_issue = utils.get_next_issue(issue_list, issue) context = { 'next_issue': next_issue, 'previous_issue': previous_issue, 'journal': journal, 'issue': issue, 'articles': articles, 'sections': sections, 'section_filter': section_filter, # o primiero item da lista é o último fascículo. 'last_issue': issues[0] if issues else None } return render_template("issue/toc.html", **context)
def issue_toc(url_seg, url_seg_issue): default_lang = current_app.config.get("BABEL_DEFAULT_LOCALE") section_filter = request.args.get("section", "", type=unicode) if not session.get("lang"): lang = default_lang else: lang = session.get("lang")[:2] issue = controllers.get_issue_by_url_seg(url_seg, url_seg_issue) if not issue: abort(404, _("Fascículo não encontrado")) if not issue.is_public: abort(404, ISSUE_UNPUBLISH + _(issue.unpublish_reason)) if not issue.journal.is_public: abort(404, JOURNAL_UNPUBLISH + _(issue.journal.unpublish_reason)) journal = issue.journal articles = controllers.get_articles_by_iid(issue.iid, is_public=True) if articles: sections = sorted(articles.item_frequencies("section").keys()) else: sections = [] issues = controllers.get_issues_by_jid(journal.id, is_public=True) if section_filter != "": articles = articles.filter(section__iexact=section_filter) issue_list = [_issue for _issue in issues] previous_issue = utils.get_prev_issue(issue_list, issue) next_issue = utils.get_next_issue(issue_list, issue) context = { "next_issue": next_issue, "previous_issue": previous_issue, "journal": journal, "issue": issue, "articles": articles, "sections": sections, "section_filter": section_filter, # o primiero item da lista é o último fascículo. "last_issue": issues[0] if issues else None, } return render_template("issue/toc.html", **context)
def test_get_next_issue_with_one_item(self): """ Teste da função utils.get_next_issue() without itens, deve retorna None. """ issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue = utils.makeOneIssue() # criando uma lista de fascículos vazia issues = [issue1] next_issue = wutils.get_next_issue(issues, issue) self.assertIsNone(next_issue)
def test_get_next_issue_with_one_item(self): """ Teste da função utils.get_next_issue() without itens, deve retorna None. """ issue1 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue = utils.makeOneIssue() # criando uma lista de números vazia issues = [issue1] next_issue = wutils.get_next_issue(issues, issue) self.assertIsNone(next_issue)
def test_get_next_issue(self): """ Teste da função utils.get_next_issue(). IMPORTANTE: A lista é invertida. """ issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue2 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '2', 'order': '2', }) issue3 = utils.makeOneIssue({'year': '2016', 'volume': '1', 'number': '3', 'order': '3', }) # criando uma lista de fascículos ordenada issues = [issue1, issue2, issue3] next_issue = wutils.get_next_issue(issues, issue2) self.assertEqual(next_issue, issue1)
def test_get_next_issue_when_first_item(self): """ Testando o get_next_issue quando é acessado o primiero índice, deve retorna None. Acessando o primiero item da lista irá retornar None. IMPORTANTE: A lista é invertida. """ issue1 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '1', 'order': '1', }) issue2 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '2', 'order': '2', }) issue3 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '3', 'order': '3', }) issue4 = utils.makeOneIssue({ 'year': '2016', 'volume': '1', 'number': '4', 'order': '4', }) # criando uma lista de números ordenada issues = [issue1, issue2, issue3, issue4] next_issue = wutils.get_next_issue(issues, issue1) self.assertIsNone(next_issue)