mirror of
				https://github.com/KevinMidboe/spotify-downloader.git
				synced 2025-10-29 18:00:15 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sys
 | |
| import os
 | |
| import subprocess
 | |
| 
 | |
| import spotdl.util
 | |
| 
 | |
| import pytest
 | |
| 
 | |
| 
 | |
| @pytest.fixture(scope="module")
 | |
| def directory_fixture(tmpdir_factory):
 | |
|     dir_path = os.path.join(str(tmpdir_factory.mktemp("tmpdir")), "filter_this_directory")
 | |
|     return dir_path
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize("value", [
 | |
|     5,
 | |
|     "string",
 | |
|     {"a": 1, "b": 2},
 | |
|     (10, 20, 30, "string"),
 | |
|     [2, 4, "sample"]
 | |
| ])
 | |
| def test_thread_with_return_value(value):
 | |
|     returner = lambda x: x
 | |
|     thread = spotdl.util.ThreadWithReturnValue(
 | |
|         target=returner,
 | |
|         args=(value,)
 | |
|     )
 | |
|     thread.start()
 | |
|     assert value == thread.join()
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize("track, track_type", [
 | |
|   ("https://open.spotify.com/track/3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | |
|   ("spotify:track:3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | |
|   ("3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | |
|   ("https://www.youtube.com/watch?v=oMiNsd176NM", "youtube"),
 | |
|   ("oMiNsd176NM", "youtube"),
 | |
|   ("kodaline - saving grace", "query"),
 | |
|   ("or anything else", "query"),
 | |
| ])
 | |
| def test_track_type(track, track_type):
 | |
|     assert spotdl.util.track_type(track) == track_type
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize("str_duration, sec_duration", [
 | |
|     ("0:23", 23),
 | |
| 	("0:45", 45),
 | |
| 	("2:19", 139),
 | |
| 	("3:33", 213),
 | |
| 	("7:38", 458),
 | |
| 	("1:30:05", 5405),
 | |
| ])
 | |
| def test_get_seconds_from_video_time(str_duration, sec_duration):
 | |
|     secs = spotdl.util.get_sec(str_duration)
 | |
|     assert secs == sec_duration
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize("duplicates, expected", [
 | |
|     (("https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",
 | |
|       "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",),
 | |
|     ( "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",),),
 | |
| 
 | |
|     (("https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",
 | |
|       "",
 | |
|       "https://open.spotify.com/track/3SipFlNddvL0XNZRLXvdZD",),
 | |
|     ( "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",
 | |
|       "https://open.spotify.com/track/3SipFlNddvL0XNZRLXvdZD",),),
 | |
| 
 | |
|     (("ncs fade",
 | |
|       "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",
 | |
|       "",
 | |
|       "ncs fade",),
 | |
|     ("ncs fade",
 | |
|      "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ"),),
 | |
| 
 | |
|     (("ncs spectre ",
 | |
|       "  https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ",
 | |
|       ""),
 | |
|     ( "ncs spectre",
 | |
|       "https://open.spotify.com/track/2DGa7iaidT5s0qnINlwMjJ"),),
 | |
| ])
 | |
| def test_remove_duplicates(duplicates, expected):
 | |
|     uniques = spotdl.util.remove_duplicates(
 | |
| 		duplicates,
 | |
| 		condition=lambda x: x,
 | |
| 		operation=str.strip,
 | |
| 	)
 | |
|     assert tuple(uniques) == expected
 | |
| 
 |