def test_can_redirect_journals_from_legacy_urls(self): article = ArticleFactory() article.issue.volume = "1" article.issue.number = "1" article.issue.save() url = "/revue/{code}/".format(code=article.issue.journal.code, ) resp = self.client.get(url) assert resp.url == reverse('public:journal:journal_detail', kwargs=dict( code=article.issue.journal.code, )) assert resp.status_code == 301
def test_legacy_urls_return_are_redirected_with_http_301(self): article = ArticleFactory() legacy_urls = [ "/recherche/index.html", "/client/login.jsp", "/client/login.jsp?lang=en", "/these/liste.html", "/rss.xml", ] for url in legacy_urls: assert self.client.get(url).status_code == 301
def test_can_redirect_article_from_legacy_urls(self): from django.utils.translation import deactivate_all article = ArticleFactory() url = '/revue/{journal_code}/{issue_year}/v/n{issue_number}/{article_localidentifier}.html'.format( # noqa journal_code=article.issue.journal.code, issue_year=article.issue.year, issue_number=article.issue.number, article_localidentifier=article.localidentifier) resp = self.client.get(url) assert resp.url == reverse( 'public:journal:article_detail', kwargs=dict(journal_code=article.issue.journal.code, issue_slug=article.issue.volume_slug, issue_localid=article.issue.localidentifier, localid=article.localidentifier)) assert "/fr/" in resp.url assert resp.status_code == 301 deactivate_all() resp = self.client.get(url + "?lang=en") assert resp.url == reverse( 'public:journal:article_detail', kwargs=dict(journal_code=article.issue.journal.code, issue_slug=article.issue.volume_slug, issue_localid=article.issue.localidentifier, localid=article.localidentifier)) assert "/en/" in resp.url assert resp.status_code == 301 url = '/en/revue/{journal_code}/{issue_year}/v/n{issue_number}/{article_localidentifier}.html'.format( # noqa journal_code=article.issue.journal.code, issue_year=article.issue.year, issue_number=article.issue.number, article_localidentifier=article.localidentifier) deactivate_all() resp = self.client.get(url) assert resp.url == reverse( 'public:journal:article_detail', kwargs=dict(journal_code=article.issue.journal.code, issue_slug=article.issue.volume_slug, issue_localid=article.issue.localidentifier, localid=article.localidentifier)) assert "/en/" in resp.url assert resp.status_code == 301
def test_can_generate_section_tree_with_three_levels(self): view = IssueDetailView() article = ArticleFactory() ArticleSectionTitleFactory( article=article, title="section 1", level=1, ) ArticleSectionTitleFactory( article=article, title="section 2", level=2, ) ArticleSectionTitleFactory( article=article, title="section 3", level=3 ) sections_tree = view.generate_sections_tree([article]) assert sections_tree == { 'type': 'subsection', 'level': 0, 'titles': {'paral': None, 'main': None}, 'groups': [{ 'type': 'subsection', 'level': 1, 'titles': {'paral': [], 'main': 'section 1'}, 'groups': [{ 'type': 'subsection', 'level': 2, 'titles': {'paral': [], 'main': 'section 2'}, 'groups': [{ 'type': 'subsection', 'level': 3, 'titles': {'paral': [], 'main': 'section 3'}, 'groups': [ {'objects': [article], 'type': 'objects', 'level': 3}, ] }] }] }] }
def test_can_redirect_issues_from_legacy_urls(self): article = ArticleFactory() article.issue.volume = "1" article.issue.number = "1" article.issue.save() url = "/revue/{journal_code}/{year}/v{volume}/n{number}/".format( journal_code=article.issue.journal.code, year=article.issue.year, volume=article.issue.volume, number=article.issue.number) resp = self.client.get(url) assert resp.url == reverse( 'public:journal:issue_detail', kwargs=dict(journal_code=article.issue.journal.code, issue_slug=article.issue.volume_slug, localidentifier=article.issue.localidentifier)) assert resp.status_code == 301