Skip to content
Snippets Groups Projects
Verified Commit 2a3f43ec authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Ensure privacy_level is settable/inherited properly

parent 859f8a05
No related branches found
No related tags found
No related merge requests found
......@@ -32,7 +32,12 @@ class PlaylistViewSet(
return self.queryset.filter(user=self.request.user)
def perform_create(self, serializer):
return serializer.save(user=self.request.user)
return serializer.save(
user=self.request.user,
privacy_level=serializer.validated_data.get(
'privacy_level', self.request.user.privacy_level)
)
class PlaylistTrackViewSet(
......
......@@ -7,27 +7,44 @@ from funkwhale_api.playlists import models
from funkwhale_api.playlists.serializers import PlaylistSerializer
def test_can_create_playlist_via_api(logged_in_client):
def test_can_create_playlist_via_api(logged_in_api_client):
url = reverse('api:v1:playlists-list')
data = {
'name': 'test',
'privacy_level': 'everyone'
}
response = logged_in_client.post(url, data)
response = logged_in_api_client.post(url, data)
playlist = logged_in_client.user.playlists.latest('id')
playlist = logged_in_api_client.user.playlists.latest('id')
assert playlist.name == 'test'
assert playlist.privacy_level == 'everyone'
def test_can_add_playlist_track_via_api(factories, logged_in_client):
def test_playlist_inherits_user_privacy(logged_in_api_client):
url = reverse('api:v1:playlists-list')
user = logged_in_api_client.user
user.privacy_level = 'me'
user.save()
data = {
'name': 'test',
}
response = logged_in_api_client.post(url, data)
playlist = user.playlists.latest('id')
assert playlist.privacy_level == user.privacy_level
def test_can_add_playlist_track_via_api(factories, logged_in_api_client):
tracks = factories['music.Track'].create_batch(5)
playlist = factories['playlists.Playlist'](user=logged_in_client.user)
playlist = factories['playlists.Playlist'](user=logged_in_api_client.user)
url = reverse('api:v1:playlist-tracks-list')
data = {
'playlist': playlist.pk,
'track': tracks[0].pk
}
response = logged_in_client.post(url, data)
plts = logged_in_client.user.playlists.latest('id').playlist_tracks.all()
response = logged_in_api_client.post(url, data)
plts = logged_in_api_client.user.playlists.latest('id').playlist_tracks.all()
assert plts.first().track == tracks[0]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment