95 lines
3.3 KiB
Python
95 lines
3.3 KiB
Python
from mutagen import id3
|
|
import pycountry
|
|
import unittest
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Add the parent directory of the src package to the Python module search path
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
from music_kraken import objects
|
|
|
|
|
|
class TestSong(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.album_list = [
|
|
objects.Album(
|
|
title="One Final Action",
|
|
date=objects.ID3Timestamp(year=1986, month=3, day=1),
|
|
language=pycountry.languages.get(alpha_2="en"),
|
|
label_list=[
|
|
objects.Label(name="an album label")
|
|
],
|
|
source_list=[
|
|
objects.Source(objects.SourcePages.ENCYCLOPAEDIA_METALLUM,
|
|
"https://www.metal-archives.com/albums/I%27m_in_a_Coffin/One_Final_Action/207614")
|
|
]
|
|
),
|
|
]
|
|
|
|
self.artist_list = []
|
|
|
|
self.main_artist_list=[
|
|
objects.Artist(
|
|
name="I'm in a coffin",
|
|
source_list=[
|
|
objects.Source(
|
|
objects.SourcePages.ENCYCLOPAEDIA_METALLUM,
|
|
"https://www.metal-archives.com/bands/I%27m_in_a_Coffin/127727"
|
|
)
|
|
]
|
|
),
|
|
objects.Artist(name="some_split_artist")
|
|
]
|
|
feature_artist_list=[
|
|
objects.Artist(
|
|
name="Ruffiction",
|
|
label_list=[
|
|
objects.Label(name="Ruffiction Productions")
|
|
]
|
|
)
|
|
]
|
|
|
|
self.artist_list.extend(self.main_artist_list)
|
|
self.artist_list.extend(feature_artist_list)
|
|
|
|
self.song = objects.Song(
|
|
genre="HS Core",
|
|
title="Vein Deep in the Solution",
|
|
length=666,
|
|
isrc="US-S1Z-99-00001",
|
|
tracksort=2,
|
|
target_list=[
|
|
objects.Target(file="song.mp3", path="example")
|
|
],
|
|
lyrics_list=[
|
|
objects.Lyrics(
|
|
text="these are some depressive lyrics", language="en"),
|
|
objects.Lyrics(
|
|
text="Dies sind depressive Lyrics", language="de")
|
|
],
|
|
source_list=[
|
|
objects.Source(objects.SourcePages.YOUTUBE,
|
|
"https://youtu.be/dfnsdajlhkjhsd"),
|
|
objects.Source(objects.SourcePages.MUSIFY,
|
|
"https://ln.topdf.de/Music-Kraken/")
|
|
],
|
|
album_list=self.album_list,
|
|
main_artist_list=self.main_artist_list,
|
|
feature_artist_list=feature_artist_list,
|
|
)
|
|
|
|
self.song.compile()
|
|
|
|
def test_album(self):
|
|
for artist in self.song.main_artist_collection:
|
|
for artist_album in artist.main_album_collection:
|
|
self.assertIn(artist_album, self.song.album_collection)
|
|
|
|
def test_artist(self):
|
|
for album in self.song.album_collection:
|
|
for album_artist in album.artist_collection:
|
|
self.assertIn(album_artist, self.song.main_artist_collection)
|
|
|