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