Skip to content
Snippets Groups Projects
test_utils.py 1.7 KiB
Newer Older
import pytest

from funkwhale_api.federation import utils


@pytest.mark.parametrize('url,path,expected', [
    ('http://test.com', '/hello', 'http://test.com/hello'),
    ('http://test.com/', 'hello', 'http://test.com/hello'),
    ('http://test.com/', '/hello', 'http://test.com/hello'),
    ('http://test.com', 'hello', 'http://test.com/hello'),
])
def test_full_url(settings, url, path, expected):
    settings.FUNKWHALE_URL = url
    assert utils.full_url(path) == expected


def test_extract_headers_from_meta():
    wsgi_headers = {
        'HTTP_HOST': 'nginx',
        'HTTP_X_REAL_IP': '172.20.0.4',
        'HTTP_X_FORWARDED_FOR': '188.165.228.227, 172.20.0.4',
        'HTTP_X_FORWARDED_PROTO': 'http',
        'HTTP_X_FORWARDED_HOST': 'localhost:80',
        'HTTP_X_FORWARDED_PORT': '80',
        'HTTP_CONNECTION': 'close',
        'CONTENT_LENGTH': '1155',
        'CONTENT_TYPE': 'txt/application',
        'HTTP_SIGNATURE': 'Hello',
        'HTTP_DATE': 'Sat, 31 Mar 2018 13:53:55 GMT',
        'HTTP_USER_AGENT': 'http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.eliotberriot.com/)'}

    cleaned_headers = utils.clean_wsgi_headers(wsgi_headers)

    expected = {
        'Host': 'nginx',
        'X-Real-Ip': '172.20.0.4',
        'X-Forwarded-For': '188.165.228.227, 172.20.0.4',
        'X-Forwarded-Proto': 'http',
        'X-Forwarded-Host': 'localhost:80',
        'X-Forwarded-Port': '80',
        'Connection': 'close',
        'Content-Length': '1155',
        'Content-Type': 'txt/application',
        'Signature': 'Hello',
        'Date': 'Sat, 31 Mar 2018 13:53:55 GMT',
        'User-Agent': 'http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.eliotberriot.com/)'
    }
    assert cleaned_headers == expected