Skip to content
Snippets Groups Projects
test_utils.py 1.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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