49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
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
|