Simplified playlist serializer and ensure update return same payload as detail
This commit is contained in:
parent
6a9a34d244
commit
71d46e4361
|
@ -62,34 +62,20 @@ class PlaylistTrackWriteSerializer(serializers.ModelSerializer):
|
|||
return []
|
||||
|
||||
|
||||
class PlaylistWriteSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = models.Playlist
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'privacy_level',
|
||||
]
|
||||
|
||||
|
||||
class PlaylistSerializer(serializers.ModelSerializer):
|
||||
tracks_count = serializers.SerializerMethodField()
|
||||
user = UserBasicSerializer()
|
||||
tracks_count = serializers.SerializerMethodField(read_only=True)
|
||||
user = UserBasicSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Playlist
|
||||
fields = (
|
||||
'id',
|
||||
'name',
|
||||
'user',
|
||||
'tracks_count',
|
||||
'privacy_level',
|
||||
'creation_date',
|
||||
'modification_date')
|
||||
'user',
|
||||
'privacy_level',)
|
||||
read_only_fields = [
|
||||
'id',
|
||||
'user',
|
||||
'modification_date',
|
||||
'creation_date',]
|
||||
|
||||
|
|
|
@ -38,11 +38,6 @@ class PlaylistViewSet(
|
|||
filter_class = filters.PlaylistFilter
|
||||
ordering_fields = ('id', 'name', 'creation_date', 'modification_date')
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request.method in ['PUT', 'PATCH', 'DELETE', 'POST']:
|
||||
return serializers.PlaylistWriteSerializer
|
||||
return self.serializer_class
|
||||
|
||||
@detail_route(methods=['get'])
|
||||
def tracks(self, request, *args, **kwargs):
|
||||
playlist = self.get_object()
|
||||
|
|
|
@ -182,3 +182,16 @@ def test_can_clear_playlist_from_api(
|
|||
|
||||
assert response.status_code == 204
|
||||
assert playlist.playlist_tracks.count() == 0
|
||||
|
||||
|
||||
def test_update_playlist_from_api(
|
||||
factories, mocker, logged_in_api_client):
|
||||
playlist = factories['playlists.Playlist'](user=logged_in_api_client.user)
|
||||
plts = factories['playlists.PlaylistTrack'].create_batch(
|
||||
size=5, playlist=playlist)
|
||||
url = reverse('api:v1:playlists-detail', kwargs={'pk': playlist.pk})
|
||||
response = logged_in_api_client.patch(url, {'name': 'test'})
|
||||
playlist.refresh_from_db()
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.data['user']['username'] == playlist.user.username
|
||||
|
|
Loading…
Reference in New Issue