class ListeningActivitySerializer(activity_serializers.ModelSerializer): type = serializers.SerializerMethodField() object = TrackActivitySerializer(source="track") actor = UserActivitySerializer(source="user") published = serializers.DateTimeField(source="creation_date") class Meta: model = models.Listening fields = ["id", "local_id", "object", "type", "actor", "published"] def get_actor(self, obj): return UserActivitySerializer(obj.user).data def get_type(self, obj): return "Listen"
def test_activity_favorite_serializer(factories): favorite = factories["favorites.TrackFavorite"]() actor = UserActivitySerializer(favorite.user).data field = serializers.serializers.DateTimeField() expected = { "type": "Like", "local_id": favorite.pk, "id": favorite.get_activity_url(), "actor": actor, "object": TrackActivitySerializer(favorite.track).data, "published": field.to_representation(favorite.creation_date), } data = serializers.TrackFavoriteActivitySerializer(favorite).data assert data == expected
def test_activity_listening_serializer(factories): listening = factories["history.Listening"]() actor = UserActivitySerializer(listening.user).data field = serializers.serializers.DateTimeField() expected = { "type": "Listen", "local_id": listening.pk, "id": listening.get_activity_url(), "actor": actor, "object": TrackActivitySerializer(listening.track).data, "published": field.to_representation(listening.creation_date), } data = serializers.ListeningActivitySerializer(listening).data assert data == expected
def get_actor(self, obj): return UserActivitySerializer(obj.user).data