Ensure privacy_level is settable/inherited properly
This commit is contained in:
parent
859f8a0570
commit
2a3f43ecb1
|
@ -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_api_client.post(url, data)
|
||||
|
||||
playlist = logged_in_api_client.user.playlists.latest('id')
|
||||
assert playlist.name == 'test'
|
||||
assert playlist.privacy_level == 'everyone'
|
||||
|
||||
|
||||
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_client.post(url, data)
|
||||
|
||||
playlist = logged_in_client.user.playlists.latest('id')
|
||||
assert playlist.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_client):
|
||||
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]
|
||||
|
|
Loading…
Reference in New Issue