def test_fetch_and_save_when_existing_youtube(self): x = Track.objects.all().count() responses.add_callback( responses.GET, 'https://www.googleapis.com/youtube/v3/videos', callback=self.request_callback_youtube, content_type='application/json', ) Track.fetch_and_save_track(Track.SERVICES.youtube, self.track_youtube.service_id, self.establishment) self.assertEqual(Track.objects.all().count(), x)
def test_fetch_and_save_when_existing_deezer(self): x = Track.objects.all().count() responses.add_callback( responses.GET, ('http://api.deezer.com/track/%s' % self.track.service_id), callback=self.request_callback_deezer, content_type='application/json', ) Track.fetch_and_save_track(Track.SERVICES.deezer, self.track.service_id, self.establishment) self.assertEqual(Track.objects.all().count(), x)
def test_fetch_and_save_when_new_youtube(self): x = Track.objects.all().count() responses.add_callback( responses.GET, 'https://www.googleapis.com/youtube/v3/videos', callback=self.request_callback_youtube, content_type='application/json', ) track = Track.fetch_and_save_track(Track.SERVICES.youtube, '223456', self.establishment) self.assertTrue(Track.objects.filter(id=track.id).exists()) self.assertEqual(Track.objects.all().count(), x + 1)
def test_fetch_and_save_when_new_deezer(self): x = Track.objects.all().count() responses.add_callback( responses.GET, 'http://api.deezer.com/track/223456', callback=self.request_callback_deezer, content_type='application/json', ) track = Track.fetch_and_save_track(Track.SERVICES.deezer, '223456', self.establishment) self.assertTrue(Track.objects.filter(id=track.id).exists()) self.assertEqual(Track.objects.all().count(), x + 1)
def create(self, request, *args, **kwargs): service_id = self.kwargs['service_id'] service = self.kwargs['service'] try: self.track = Track.fetch_and_save_track(service, service_id, self.establishment) Vote.objects.create(track=self.track, token=self.get_token()) except RequestException: return Response(status=status.HTTP_503_SERVICE_UNAVAILABLE) except ValueError as e: return Response(status=status.HTTP_400_BAD_REQUEST, data=e.message) serializer = TrackSerializer(self.track) self.broadcast_list_changed() return Response(serializer.data, status=status.HTTP_201_CREATED)
def create(self, request, *args, **kwargs): service_id = self.kwargs['service_id'] service = self.kwargs['service'] try: self.track = Track.fetch_and_save_track(service, service_id, self.establishment) Vote.objects.create(track=self.track, token=self.get_token()) except RequestException: return Response( status=status.HTTP_503_SERVICE_UNAVAILABLE) except ValueError as e: return Response( status=status.HTTP_400_BAD_REQUEST, data=e.message) serializer = TrackSerializer(self.track) self.broadcast_list_changed() return Response(serializer.data, status=status.HTTP_201_CREATED)
def create(self, validated_data): establishment = self.context['establishment'] return Track.fetch_and_save_track( establishment=establishment, service=validated_data['service'], service_id=validated_data['service_id'])