From 6bf4d463624015b7e745063bd509c74d30cee350 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Sat, 7 Apr 2018 16:28:52 +0200 Subject: [PATCH] Ensure we don't duplicate libray tracks --- api/tests/federation/test_serializers.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py index 45778ed48..71407dc43 100644 --- a/api/tests/federation/test_serializers.py +++ b/api/tests/federation/test_serializers.py @@ -262,6 +262,25 @@ def test_activity_pub_audio_serializer_to_library_track(factories): assert lt.published_date == arrow.get(audio['published']) +def test_activity_pub_audio_serializer_to_library_track_no_duplicate( + factories): + remote_library = factories['federation.Library']() + audio = factories['federation.Audio']() + serializer1 = serializers.AudioSerializer( + data=audio, context={'library': remote_library}) + serializer2 = serializers.AudioSerializer( + data=audio, context={'library': remote_library}) + + assert serializer1.is_valid() is True + assert serializer2.is_valid() is True + + lt1 = serializer1.save() + lt2 = serializer2.save() + + assert lt1 == lt2 + assert models.LibraryTrack.objects.count() == 1 + + def test_activity_pub_audio_serializer_to_ap(factories): tf = factories['music.TrackFile'](mimetype='audio/mp3') library = actors.SYSTEM_ACTORS['library'].get_actor_instance() -- GitLab