def candidates(root): debug('scanning %s' % root) for path, dirs, files in walk(root): files = lfilter(lambda file: file.endswith('.mp3'), files) if files: if dirs: warning('ignoring sub-directories in %s' % path) del dirs yield path, files elif not dirs: warning('empty directory at %s' % path)
def test_not_empty(self): session, _ = self.scan_directory('mp3s') albums = session.query(Album).join(Album.tracks).join(Track.artist).filter(Artist.name == 'Artist 1').all() assert len(albums) == 1, albums album = albums[0] assert album.path == join(parent(__file__), 'mp3s', 'Artist 1', 'Album 1'), album.path assert len(album.tracks) == 2, album.tracks tracks = lfilter(lambda t: t.number == 1, album.tracks) assert len(tracks) == 1, tracks track = tracks[0] tracks = session.query(Track).all() assert len(tracks) == 7, len(tracks) tracks = session.query(Track).join(Track.artist).filter(Track.number == 1, Artist.name == 'Artist 1').all() assert len(tracks) == 1, len(tracks) assert track == tracks[0] assert track.name == 'Track 1', track.name assert track.file == 'Artist 1 - 01 - Track 1.mp3', track.file artists = session.query(Artist).filter(Artist.name == 'Artist 1').all() assert len(artists) == 1, len(artists) artist = artists[0] assert track.artist == artist, track.artist assert artist.name == 'Artist 1', artist.name assert len(artist.tracks) == 2, len(artist.tracks)