Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/common/test_templatetags.py
# Copyright (C) 2015-2019 The Software Heritage developers | # Copyright (C) 2015-2019 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import pytest | import pytest | ||||
from swh.web.common.swh_templatetags import ( | from swh.web.common.swh_templatetags import ( | ||||
urlize_links_and_mails, urlize_header_links, safe_docstring_display | urlize_links_and_mails, urlize_header_links, safe_docstring_display | ||||
) | ) | ||||
def test_urlize_api_links_api(): | def test_urlize_http_link(): | ||||
# update api link with html links content with links | link = 'https://example.com/api/1/abc/' | ||||
content = '{"url": "/api/1/abc/"}' | expected_content = f'<a href="{link}">{link}</a>' | ||||
expected_content = ('{"url": "<a href="/api/1/abc/">/api/1/abc/</a>"}') | |||||
assert urlize_links_and_mails(link) == expected_content | |||||
assert urlize_links_and_mails(content) == expected_content | |||||
def test_urlize_email(): | |||||
email = 'someone@example.com' | |||||
expected_content = f'<a href="mailto:{email}">{email}</a>' | |||||
def test_urlize_api_links_browse(): | assert urlize_links_and_mails(email) == expected_content | ||||
# update /browse link with html links content with links | |||||
content = '{"url": "/browse/def/"}' | |||||
expected_content = ('{"url": "<a href="/browse/def/">' | |||||
'/browse/def/</a>"}') | |||||
assert urlize_links_and_mails(content) == expected_content | |||||
def test_urlize_header_links(): | def test_urlize_header_links(): | ||||
# update api link with html links content with links | |||||
content = '</api/1/abc/>; rel="next"\n</api/1/def/>; rel="prev"' | |||||
expected_content = ('<<a href="/api/1/abc/">/api/1/abc/</a>>; rel="next"\n' | next_link = 'https://example.com/api/1/abc/' | ||||
'<<a href="/api/1/def/">/api/1/def/</a>>; rel="prev"') | prev_link = 'https://example.com/api/1/def/' | ||||
content = f'<{next_link}>; rel="next"\n<{prev_link}>; rel="prev"' | |||||
expected_content = ( | |||||
f'<<a href="{next_link}">{next_link}</a>>; rel="next"\n' | |||||
f'<<a href="{prev_link}">{prev_link}</a>>; rel="prev"') | |||||
assert urlize_header_links(content) == expected_content | assert urlize_header_links(content) == expected_content | ||||
# remove deprecation warnings related to docutils | # remove deprecation warnings related to docutils | ||||
@pytest.mark.filterwarnings( | @pytest.mark.filterwarnings( | ||||
'ignore:.*U.*mode is deprecated:DeprecationWarning') | 'ignore:.*U.*mode is deprecated:DeprecationWarning') | ||||
def test_safe_docstring_display(): | def test_safe_docstring_display(): | ||||
Show All 20 Lines |