forked from rc/aircox
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
import pytest
 | 
						|
 | 
						|
from aircox.test import Interface
 | 
						|
from aircox.controllers import playlist_import
 | 
						|
 | 
						|
 | 
						|
csv_data = [
 | 
						|
    {
 | 
						|
        "artist": "Artist 1",
 | 
						|
        "title": "Title 1",
 | 
						|
        "minutes": "1",
 | 
						|
        "seconds": "0",
 | 
						|
        "tags": "tag1,tag12",
 | 
						|
        "info": "info1",
 | 
						|
    },
 | 
						|
    {
 | 
						|
        "artist": "Artist 2",
 | 
						|
        "title": "Title 2",
 | 
						|
        "minutes": "2",
 | 
						|
        "seconds": "1",
 | 
						|
        "tags": "tag2,tag12",
 | 
						|
        "info": "info2",
 | 
						|
    },
 | 
						|
    {
 | 
						|
        "artist": "Artist 3",
 | 
						|
        "title": "Title 3",
 | 
						|
        "minutes": "3",
 | 
						|
        "seconds": "2",
 | 
						|
        "tags": "",
 | 
						|
        "info": "",
 | 
						|
    },
 | 
						|
]
 | 
						|
 | 
						|
 | 
						|
@pytest.fixture
 | 
						|
def importer(sound):
 | 
						|
    path = os.path.join(os.path.dirname(__file__), "playlist.csv")
 | 
						|
    return playlist_import.PlaylistImport(path, sound=sound)
 | 
						|
 | 
						|
 | 
						|
class TestPlaylistImport:
 | 
						|
    @pytest.mark.django_db
 | 
						|
    def test_run(self, importer):
 | 
						|
        iface = Interface(None, {"read": None, "make_playlist": None})
 | 
						|
        importer.read = iface.read
 | 
						|
        importer.make_playlist = iface.make_playlist
 | 
						|
        importer.run()
 | 
						|
        assert iface._trace("read")
 | 
						|
        assert iface._trace("make_playlist")
 | 
						|
 | 
						|
    @pytest.mark.django_db
 | 
						|
    def test_read(self, importer):
 | 
						|
        importer.read()
 | 
						|
        assert importer.data == csv_data
 | 
						|
 | 
						|
    @pytest.mark.django_db
 | 
						|
    def test_make_playlist(self, importer, sound):
 | 
						|
        importer.data = csv_data
 | 
						|
        importer.make_playlist()
 | 
						|
        track_artists = sound.track_set.all().values_list("artist", flat=True)
 | 
						|
        csv_artists = {r["artist"] for r in csv_data}
 | 
						|
        assert set(track_artists) == csv_artists
 | 
						|
        # TODO: check other values
 |