예제 #1
0
 def test_get_used_in_eps(self):
     song = Anisong()
     songname = '#1: "Answer" by BUMP OF CHICKEN (eps 1-11)'
     self.assertEqual(song.get_used_in_eps(songname), "eps 1-11")
     songname = '"Uzu to Uzu" by NICO Touches the Walls (ep 2)'
     self.assertEqual(song.get_used_in_eps(songname), "ep 2")
     songname = '#1: "Gunjou Survival" by Mikako Komatsu (eps 1-7, 9-12)'
     self.assertEqual(song.get_used_in_eps(songname), "eps 1-7, 9-12")
예제 #2
0
    def test_from_file_name(self):
        filename = "Aya Hirano - God Knows"
        song = Anisong.from_file_name(filename)
        self.assertEqual(song.title, "God Knows")
        self.assertEqual(song.artist, "Aya Hirano")

        filename = "/some/path/YUKI - Flag wo Tateru"
        song = Anisong.from_file_name(filename)
        self.assertEqual(song.title, "Flag wo Tateru")
        self.assertEqual(song.artist, "YUKI")
예제 #3
0
 def test_from_tsv_entry(self):
     tsv_entry = ('FALSE\tSuzumiya Haruhi no Yuuutsu (2009)\tOP\t'
                  '1\t"Super Driver"\tAya Hirano\t-')
     song = Anisong.from_tsv_entry(tsv_entry)
     self.assertEqual(song.type, "OP")
     self.assertEqual(song.number, "1")
     self.assertEqual(song.title, "Super Driver")
     self.assertEqual(song.artist, "Aya Hirano")
     self.assertEqual(song.used_in_eps, None)
예제 #4
0
    def test_get_artist(self):
        song = Anisong()
        song.used_in_eps = 'eps 1-11'
        songname = '#1: "Answer" by BUMP OF CHICKEN (eps 1-11)'
        self.assertEqual(song.get_artist(songname), "BUMP OF CHICKEN")

        song.used_in_eps = 'ep 2'
        songname = '"Uzu to Uzu" by NICO Touches the Walls (ep 2)'
        self.assertEqual(song.get_artist(songname), 'NICO Touches the Walls')

        songname = '#1: "Gunjou Survival" by Mikako Komatsu (eps 1-7, 9-12)'
        song.used_in_eps = 'eps 1-7, 9-12'
        self.assertEqual(song.get_artist(songname), 'Mikako Komatsu')

        # Ambiguous
        songname = 'My Dearest by supercell; performed by Koeda'
        self.assertEqual(song.get_artist(songname), None)

        # Unknown
        songname = 'DREAM SOLISTER (Wind Orchestra Ver.)'
        self.assertEqual(song.get_artist(songname), None)
예제 #5
0
 def test_get_song_number(self):
     song = Anisong()
     songname = '#1: "Answer" by BUMP OF CHICKEN (eps 1-11)'
     self.assertEqual(song.get_song_number(songname), "01")
     songname = '#2: "Sayonara Bystander" by YUKI (eps 12-22)'
     self.assertEqual(song.get_song_number(songname), "02")
     songname = '#02: "Sayonara Bystander" by YUKI (eps 12-22)'
     self.assertEqual(song.get_song_number(songname), "02")
     songname = '#12: "Tenohira" by HERO (eps 138-150)'
     self.assertEqual(song.get_song_number(songname), "12")
     songname = '#R1: "Circle Game" by Galileo Galilei (eps 1-10)'
     self.assertEqual(song.get_song_number(songname), "R1")
예제 #6
0
    def test__clean_eps_number(self):
        song = Anisong()
        song.used_in_eps = 'eps 1-11'
        songname = '#1: "Answer" by BUMP OF CHICKEN (eps 1-11)'
        self.assertEqual(song._clean_eps_number(songname),
                         '#1: "Answer" by BUMP OF CHICKEN ')

        song.used_in_eps = 'ep 2'
        songname = '"Uzu to Uzu" by NICO Touches the Walls (ep 2)'
        self.assertEqual(song._clean_eps_number(songname),
                         '"Uzu to Uzu" by NICO Touches the Walls ')

        songname = '#1: "Gunjou Survival" by Mikako Komatsu (eps 1-7, 9-12)'
        song.used_in_eps = 'eps 1-7, 9-12'
        self.assertEqual(song._clean_eps_number(songname),
                         '#1: "Gunjou Survival" by Mikako Komatsu ')
예제 #7
0
    def scan_library(self, scan_recursive=False):
        """Scan the library and add songs found in self.songs

        Args:
            scan_recursive (bool, optional):
                Recursively scan directories if set to True
        """
        with os.scandir(self.library_dir) as it:
            for entry in it:
                if scan_recursive and os.path.isdir(entry.path):
                    old_library_dir = self.library_dir
                    self.library_dir = entry.path
                    self.scan_songs(scan_recursive)
                    self.library_dir = old_library_dir
                elif self.is_audio_file(entry.path):
                    song = Anisong.from_file_name(entry.path)
                    self.songs.append(song)
예제 #8
0
def get_all_anisongs():
    """Get all anisongs in database"""
    anisongs = list()
    for result in session.query(Songs).order_by(Songs.anime):
        anisongs.append(Anisong.from_database_query(result))
    return anisongs
예제 #9
0
    def test_get_title(self):
        song = Anisong()
        song.used_in_eps = 'eps 1-11'
        song.artist = 'BUMP OF CHICKEN'
        songname = '#1: "Answer" by BUMP OF CHICKEN (eps 1-11)'
        self.assertEqual(song.get_title(songname), '"Answer"')

        song.used_in_eps = 'ep 2'
        song.artist = 'NICO Touches the Walls'
        songname = '"Uzu to Uzu" by NICO Touches the Walls (ep 2)'
        self.assertEqual(song.get_title(songname), '"Uzu to Uzu"')

        songname = '#1: "Gunjou Survival" by Mikako Komatsu (eps 1-7, 9-12)'
        song.used_in_eps = 'eps 1-7, 9-12'
        song.artist = 'Mikako Komatsu'
        self.assertEqual(song.get_title(songname), '"Gunjou Survival"')

        songname = '"Menimeni Manimani" by Nasuno Takamiya (CV: Kyoko Narumi)'
        song.artist = 'Nasuno Takamiya (CV: Kyoko Narumi)'
        self.assertEqual(song.get_title(songname), '"Menimeni Manimani"')
예제 #10
0
 def test_get_anisong_type(self):
     song = Anisong()
     self.assertEqual(song.get_anisong_type('opnening'), 'OP')
     self.assertEqual(song.get_anisong_type('ending'), 'ED')
예제 #11
0
    def test_eq(self):
        song = Anisong()
        song.artist = "Aya Hirano"
        song.title = "God Knows"
        song2 = Anisong()
        song2.artist = "Aya Hirano"
        song2.title = "God Knows"
        self.assertEqual(song, song2)
        song2.artist = "Haruhi Suzumiya"
        self.assertNotEqual(song, song2)

        song2.artist = "Aya Hirano".lower()
        song2.title = "God Knows".lower()
        self.assertEqual(song, song2)
예제 #12
0
 def test_repr(self):
     song = Anisong()
     song.artist = "Aya Hirano"
     song.title = "God Knows"
     self.assertEqual(song.__repr__(), "'God Knows' by 'Aya Hirano'")