mirror of
https://github.com/armbian/dl-router.git
synced 2026-01-06 10:32:39 -08:00
When the X-Forwarded-Proto request header is set, the /status endpoint is expected to send the related X-Request-Scheme response header. Additionally this commit removes unused imports and two trailing spaces.
68 lines
1.7 KiB
Python
Executable File
68 lines
1.7 KiB
Python
Executable File
from json import loads
|
|
|
|
import pytest
|
|
|
|
from main import app
|
|
|
|
|
|
TEST_IPS = [
|
|
"10.0.0.1",
|
|
"1.2.3.4",
|
|
"123.254.123.233",
|
|
"5.254.123.233",
|
|
]
|
|
|
|
@pytest.fixture
|
|
def client():
|
|
with app.test_client() as client:
|
|
yield client
|
|
|
|
def test_status(client):
|
|
""" test the status endpoint """
|
|
|
|
rv = client.get('/status')
|
|
assert rv.data == b'OK'
|
|
|
|
def test_mirrors(client):
|
|
""" test the mirrors endpoint """
|
|
|
|
rv = client.get('/mirrors')
|
|
jsondata = rv.data.decode('utf-8')
|
|
|
|
assert isinstance(loads(jsondata), dict)
|
|
|
|
def test_regions(client):
|
|
""" test the regions endpoint """
|
|
|
|
rv = client.get('/regions')
|
|
jsondata = rv.data.decode('utf-8')
|
|
|
|
assert isinstance(loads(jsondata), list)
|
|
|
|
def test_regions_proxied(client):
|
|
""" test the regions endpoint, but send x-forwarded-for headers """
|
|
|
|
for address in TEST_IPS:
|
|
test_headers = {
|
|
"X-Forwarded-For" : address,
|
|
}
|
|
rv = client.get('/regions', headers=test_headers)
|
|
jsondata = rv.data.decode('utf-8')
|
|
assert isinstance(loads(jsondata), list)
|
|
|
|
def test_status_proxied(client):
|
|
""" test the status endpoint, but send X-Forwarded-For and X-Forwarded-Proto headers
|
|
the status endpoint sends X-Client-IP and X-Request-Scheme headers in the response
|
|
"""
|
|
|
|
for address in TEST_IPS:
|
|
test_headers = {
|
|
"X-Forwarded-For" : address,
|
|
"X-Forwarded-Proto" : "some",
|
|
}
|
|
rv = client.get('/status', headers=test_headers)
|
|
assert 'X-Client-IP' in rv.headers
|
|
assert rv.headers.get('X-Client-IP') == address
|
|
assert 'X-Request-Scheme' in rv.headers
|
|
assert rv.headers.get('X-Request-Scheme') == "some"
|