fix scanner tests

This commit is contained in:
evilchili 2022-11-30 23:42:06 -08:00
parent 26b7fde93d
commit 4acd16bdde
2 changed files with 18 additions and 5 deletions

View File

@ -49,14 +49,17 @@ class MediaScanner:
asyncio.run(_do_import())
self.db.commit()
async def _import_one_track(self, path):
def _get_tags(self, path): # pragma: no cover
tags = music_tag.load_file(path)
relpath = str(path.relative_to(self.root))
stmt = groove.db.track.insert({
'relpath': relpath,
return {
'artist': str(tags.resolve('album_artist')),
'title': str(tags['title']),
}).prefix_with('OR IGNORE')
}
async def _import_one_track(self, path):
tags = self._get_tags(path)
tags['relpath'] = str(path.relative_to(self.root))
stmt = groove.db.track.insert(tags).prefix_with('OR IGNORE')
logging.debug(f"{tags['artist']} - {tags['title']}")
self.db.execute(stmt)

View File

@ -35,6 +35,16 @@ def test_scanner(monkeypatch, in_memory_db, media):
# replace the filesystem glob with the test fixture generator
monkeypatch.setattr(scanner.MediaScanner, 'find_sources', MagicMock(return_value=media()))
def mock_loader(path):
return {
'artist': 'foo',
'title': 'bar',
}
# replace music_tag so it doesn't try to read things
monkeypatch.setattr(scanner.MediaScanner, '_get_tags', MagicMock(side_effect=mock_loader))
test_scanner = scanner.media_scanner(root=Path('/test'), db=in_memory_db)
expected = len(fixture_tracks)