Skip to content
Snippets Groups Projects
test_views.py 1.48 KiB
Newer Older
from io import BytesIO
import requests
import tarfile
import contextlib
from .utils import *


def test_download():
    with serve():
        response = requests.get(UNAUTH_TEST_REPO_URL + "tarball/master", stream=True)
        response_body = BytesIO(response.raw.read())
        tarball = tarfile.TarFile.gzopen("test.tar.gz", fileobj=response_body)
        with contextlib.closing(tarball):
            assert tarball.extractfile('test_repo@master/test.c').read() == b'int a;\n'
Jonas Haag's avatar
Jonas Haag committed


def test_no_newline_at_end_of_file():
    with serve():
Jonas Haag's avatar
Jonas Haag committed
        response = requests.get(TEST_REPO_NO_NEWLINE_URL + "commit/HEAD/").text
Jonas Haag's avatar
Jonas Haag committed
        assert response.count("No newline at end of file") == 1


def test_dont_render_binary():
Jonas Haag's avatar
Jonas Haag committed
    with serve():
Jonas Haag's avatar
Jonas Haag committed
        response = requests.get(TEST_REPO_DONT_RENDER_URL + "blob/HEAD/binary").text
Jonas Haag's avatar
Jonas Haag committed
        assert "Binary data not shown" in response
Jonas Haag's avatar
Jonas Haag committed
    with serve():
Jonas Haag's avatar
Jonas Haag committed
        response = requests.get(TEST_REPO_DONT_RENDER_URL + "blob/HEAD/image.jpg").text
Jonas Haag's avatar
Jonas Haag committed
        assert '<img src="/dont-render/raw/HEAD/image.jpg"' in response


def test_dont_render_large_file():
Jonas Haag's avatar
Jonas Haag committed
    with serve():
Jonas Haag's avatar
Jonas Haag committed
        response = requests.get(TEST_REPO_DONT_RENDER_URL + "blob/HEAD/toolarge").text
Jonas Haag's avatar
Jonas Haag committed
        assert "Large file not shown" in response
Jonas Haag's avatar
Jonas Haag committed


def test_regression_gh233_treeview_paths():
    with serve():
        response = requests.get(UNAUTH_TEST_REPO_URL + "tree/HEAD/folder").text
        assert "blob/HEAD/test.txt" not in response
        assert "blob/HEAD/folder/test.txt" in response