Initial import: Music_Server, MusicFree, catalog-sync
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import unittest
|
||||
from types import SimpleNamespace
|
||||
|
||||
|
||||
class ModelNormalizationTests(unittest.TestCase):
|
||||
def test_catalog_song_from_song_info_builds_stable_platform_key(self):
|
||||
from musicdl.catalogsync.models import CatalogSong, normalize_source_name
|
||||
|
||||
song_info = SimpleNamespace(
|
||||
source="QQMusicClient",
|
||||
identifier="000x564O1lrTDY",
|
||||
song_name="摆脱地心引力",
|
||||
singers="时代少年团",
|
||||
album="摆脱地心引力",
|
||||
ext="flac",
|
||||
file_size_bytes=45381227,
|
||||
file_size="43.29 MB",
|
||||
raw_data={"quality": "lossless"},
|
||||
)
|
||||
|
||||
normalized = CatalogSong.from_song_info(song_info)
|
||||
|
||||
self.assertEqual("qq", normalize_source_name(song_info.source))
|
||||
self.assertEqual("qq", normalized.platform)
|
||||
self.assertEqual("000x564O1lrTDY", normalized.remote_song_id)
|
||||
self.assertEqual("qq:000x564O1lrTDY", normalized.song_key)
|
||||
self.assertEqual("lossless", normalized.quality_label)
|
||||
self.assertEqual(45381227, normalized.file_size_bytes)
|
||||
|
||||
def test_extract_artist_names_merges_raw_artists_and_display_text(self):
|
||||
from musicdl.catalogsync.models import extract_artist_names
|
||||
|
||||
raw_data = {
|
||||
"search": {
|
||||
"singer": [{"name": "周杰伦"}, {"name": "方文山"}],
|
||||
}
|
||||
}
|
||||
|
||||
names = extract_artist_names(raw_data, "周杰伦 / 方文山, 林俊杰")
|
||||
|
||||
self.assertEqual(["周杰伦", "方文山", "林俊杰"], names)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user