def test_upload_owner_serializer(factories, to_api_date): upload = factories["music.Upload"]( import_status="success", import_details={"hello": "world"}, import_metadata={"import": "metadata"}, import_reference="ref", metadata={"test": "metadata"}, source="upload://test", ) expected = { "uuid": str(upload.uuid), "filename": upload.filename, "track": serializers.TrackSerializer(upload.track).data, "duration": upload.duration, "mimetype": upload.mimetype, "bitrate": upload.bitrate, "size": upload.size, "library": serializers.LibraryForOwnerSerializer(upload.library).data, "creation_date": upload.creation_date.isoformat().split("+")[0] + "Z", "metadata": {"test": "metadata"}, "import_metadata": {"import": "metadata"}, "import_date": None, "import_status": "success", "import_details": {"hello": "world"}, "source": "upload://test", "import_reference": "ref", } serializer = serializers.UploadForOwnerSerializer(upload) assert serializer.data == expected
def test_upload_serializer(factories, to_api_date): upload = factories["music.Upload"]() expected = { "uuid": str(upload.uuid), "filename": upload.filename, "track": serializers.TrackSerializer(upload.track).data, "duration": upload.duration, "mimetype": upload.mimetype, "bitrate": upload.bitrate, "size": upload.size, "library": serializers.LibraryForOwnerSerializer(upload.library).data, "creation_date": upload.creation_date.isoformat().split("+")[0] + "Z", "import_date": None, "import_status": "pending", } serializer = serializers.UploadSerializer(upload) assert serializer.data == expected
def test_update_library_privacy_level_broadcasts_to_followers( factories, field, before, after, mocker): dispatch = mocker.patch("funkwhale_api.federation.routes.outbox.dispatch") library = factories["music.Library"](**{field: before}) serializer = serializers.LibraryForOwnerSerializer(library, data={field: after}, partial=True) assert serializer.is_valid(raise_exception=True) serializer.save() dispatch.assert_called_once_with( { "type": "Update", "object": { "type": "Library" } }, context={"library": library})