Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/browse/views/test_content.py
Show All 13 Lines | |||||
from swh.web.common.exc import NotFoundExc | from swh.web.common.exc import NotFoundExc | ||||
from swh.web.common.utils import reverse, get_swh_persistent_id | from swh.web.common.utils import reverse, get_swh_persistent_id | ||||
from swh.web.common.utils import gen_path_info | from swh.web.common.utils import gen_path_info | ||||
from swh.web.tests.django_asserts import ( | from swh.web.tests.django_asserts import ( | ||||
assert_contains, assert_not_contains, assert_template_used | assert_contains, assert_not_contains, assert_template_used | ||||
) | ) | ||||
from swh.web.tests.strategies import ( | from swh.web.tests.strategies import ( | ||||
content, content_text_non_utf8, content_text_no_highlight, | content, content_text_non_utf8, content_text_no_highlight, | ||||
content_image_type, content_text, invalid_sha1, unknown_content | content_image_type, content_text, invalid_sha1, unknown_content, | ||||
content_utf8_detected_as_binary | |||||
) | ) | ||||
@given(content_text()) | @given(content_text()) | ||||
def test_content_view_text(client, archive_data, content): | def test_content_view_text(client, archive_data, content): | ||||
sha1_git = content['sha1_git'] | sha1_git = content['sha1_git'] | ||||
url = reverse('browse-content', | url = reverse('browse-content', | ||||
▲ Show 20 Lines • Show All 320 Lines • ▼ Show 20 Lines | def test_content_uppercase(client, content): | ||||
assert resp.status_code == 302 | assert resp.status_code == 302 | ||||
redirect_url = reverse('browse-content', | redirect_url = reverse('browse-content', | ||||
url_args={'query_string': content['sha1']}) | url_args={'query_string': content['sha1']}) | ||||
assert resp['location'] == redirect_url | assert resp['location'] == redirect_url | ||||
@given(content_utf8_detected_as_binary()) | |||||
def test_content_utf8_detected_as_binary_display(client, archive_data, | |||||
content): | |||||
url = reverse('browse-content', | |||||
url_args={'query_string': content['sha1']}) | |||||
resp = client.get(url) | |||||
content_display = _process_content_for_display(archive_data, content) | |||||
assert_contains(resp, escape(content_display['content_data'])) | |||||
def _process_content_for_display(archive_data, content): | def _process_content_for_display(archive_data, content): | ||||
content_data = archive_data.content_get(content['sha1']) | content_data = archive_data.content_get(content['sha1']) | ||||
mime_type, encoding = get_mimetype_and_encoding_for_content( | mime_type, encoding = get_mimetype_and_encoding_for_content( | ||||
content_data['data']) | content_data['data']) | ||||
mime_type, content_data = _re_encode_content(mime_type, encoding, | mime_type, encoding, content_data = _re_encode_content( | ||||
content_data['data']) | mime_type, encoding, content_data['data']) | ||||
return prepare_content_for_display(content_data, mime_type, | return prepare_content_for_display(content_data, mime_type, | ||||
content['path']) | content['path']) |