Merge branch 'media-root' into 'develop'

Make media and static files serving more reliable when reverse proxy...

Closes #947

See merge request funkwhale/funkwhale!959
This commit is contained in:
Eliot Berriot 2019-11-27 15:10:23 +01:00
commit a89eb8db6e
5 changed files with 40 additions and 5 deletions

View file

@ -3,6 +3,7 @@ import os
import pytest
from django.urls import reverse
from funkwhale_api.music import views
DATA_DIR = os.path.dirname(os.path.abspath(__file__))
@ -47,4 +48,6 @@ def test_upload_url_is_accessible_to_authenticated_users(
response = logged_in_api_client.get(url)
assert response.status_code == 200
assert response["X-Accel-Redirect"] == "/_protected{}".format(upload.audio_file.url)
assert response["X-Accel-Redirect"] == "/_protected{}".format(
views.strip_absolute_media_url(upload.audio_file.url)
)

View file

@ -180,7 +180,8 @@ def test_can_serve_upload_as_remote_library(
assert response.status_code == 200
assert response["X-Accel-Redirect"] == "{}{}".format(
settings.PROTECT_FILES_PATH, upload.audio_file.url
settings.PROTECT_FILES_PATH,
views.strip_absolute_media_url(upload.audio_file.url),
)
@ -330,7 +331,8 @@ def test_can_proxy_remote_track(factories, settings, api_client, r_mock, prefere
assert response.status_code == 200
assert response["X-Accel-Redirect"] == "{}{}".format(
settings.PROTECT_FILES_PATH, upload.audio_file.url
settings.PROTECT_FILES_PATH,
views.strip_absolute_media_url(upload.audio_file.url),
)
assert upload.audio_file.read() == b"test"
@ -1043,3 +1045,20 @@ def test_track_list_exclude_channels(params, expected, factories, logged_in_api_
assert response.status_code == 200
assert response.data["count"] == expected
@pytest.mark.parametrize(
"media_url, input, expected",
[
("https://domain/media/", "https://domain/media/file.mp3", "/media/file.mp3"),
(
"https://domain/media/",
"https://otherdomain/media/file.mp3",
"https://otherdomain/media/file.mp3",
),
("https://domain/media/", "/media/file.mp3", "/media/file.mp3"),
],
)
def test_strip_absolute_media_url(media_url, input, expected, settings):
settings.MEDIA_URL = media_url
assert views.strip_absolute_media_url(input) == expected