kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
				
				
				
			
		
			
				
	
	
		
			67 wiersze
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			67 wiersze
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
import json
 | 
						|
import unittest
 | 
						|
from test_plus.test import TestCase
 | 
						|
from django.core.urlresolvers import reverse
 | 
						|
from model_mommy import mommy
 | 
						|
 | 
						|
from funkwhale_api.music import models
 | 
						|
from funkwhale_api.musicbrainz import api
 | 
						|
from funkwhale_api.music import serializers
 | 
						|
from funkwhale_api.users.models import User
 | 
						|
 | 
						|
from . import data as api_data
 | 
						|
 | 
						|
class TestWorks(TestCase):
 | 
						|
 | 
						|
    @unittest.mock.patch('funkwhale_api.musicbrainz.api.works.get',
 | 
						|
                         return_value=api_data.works['get']['chop_suey'])
 | 
						|
    def test_can_import_work(self, *mocks):
 | 
						|
        recording = mommy.make(
 | 
						|
            models.Track, mbid='07ca77cf-f513-4e9c-b190-d7e24bbad448')
 | 
						|
        mbid = 'e2ecabc4-1b9d-30b2-8f30-3596ec423dc5'
 | 
						|
        work = models.Work.create_from_api(id=mbid)
 | 
						|
 | 
						|
        self.assertEqual(work.title, 'Chop Suey!')
 | 
						|
        self.assertEqual(work.nature, 'song')
 | 
						|
        self.assertEqual(work.language, 'eng')
 | 
						|
        self.assertEqual(work.mbid, mbid)
 | 
						|
 | 
						|
        # a imported work should also be linked to corresponding recordings
 | 
						|
 | 
						|
        recording.refresh_from_db()
 | 
						|
        self.assertEqual(recording.work, work)
 | 
						|
 | 
						|
    @unittest.mock.patch('funkwhale_api.musicbrainz.api.works.get',
 | 
						|
                         return_value=api_data.works['get']['chop_suey'])
 | 
						|
    @unittest.mock.patch('funkwhale_api.musicbrainz.api.recordings.get',
 | 
						|
                         return_value=api_data.tracks['get']['chop_suey'])
 | 
						|
    def test_can_get_work_from_recording(self, *mocks):
 | 
						|
        recording = mommy.make(
 | 
						|
            models.Track,
 | 
						|
            work=None,
 | 
						|
            mbid='07ca77cf-f513-4e9c-b190-d7e24bbad448')
 | 
						|
        mbid = 'e2ecabc4-1b9d-30b2-8f30-3596ec423dc5'
 | 
						|
 | 
						|
        self.assertEqual(recording.work, None)
 | 
						|
 | 
						|
        work = recording.get_work()
 | 
						|
 | 
						|
        self.assertEqual(work.title, 'Chop Suey!')
 | 
						|
        self.assertEqual(work.nature, 'song')
 | 
						|
        self.assertEqual(work.language, 'eng')
 | 
						|
        self.assertEqual(work.mbid, mbid)
 | 
						|
 | 
						|
        recording.refresh_from_db()
 | 
						|
        self.assertEqual(recording.work, work)
 | 
						|
 | 
						|
    @unittest.mock.patch('funkwhale_api.musicbrainz.api.works.get',
 | 
						|
                         return_value=api_data.works['get']['chop_suey'])
 | 
						|
    def test_works_import_lyrics_if_any(self, *mocks):
 | 
						|
        mbid = 'e2ecabc4-1b9d-30b2-8f30-3596ec423dc5'
 | 
						|
        work = models.Work.create_from_api(id=mbid)
 | 
						|
 | 
						|
        lyrics = models.Lyrics.objects.latest('id')
 | 
						|
        self.assertEqual(lyrics.work, work)
 | 
						|
        self.assertEqual(
 | 
						|
            lyrics.url, 'http://lyrics.wikia.com/System_Of_A_Down:Chop_Suey!')
 |