예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
    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},
                        ]
                    }]
                }]
            }]
        }
예제 #5
0
    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