from shelfmark.release_sources.irc.parser import SearchResult from shelfmark.release_sources.irc.source import IRCReleaseSource def test_convert_to_releases_marks_audiobook_results_and_sorts_audio_before_archives(): source = IRCReleaseSource() source._online_servers = set() results = [ SearchResult( server="AudioBot", author="Author Name", title="Archive Release", format="zip", size="1.2GB", full_line="!AudioBot Author Name - Archive Release.zip ::INFO:: 1.2GB", ), SearchResult( server="AudioBot", author="Author Name", title="Direct Release", format="m4b", size="900MB", full_line="!AudioBot Author Name - Direct Release.m4b ::INFO:: 900MB", ), ] releases = source._convert_to_releases(results, content_type="audiobook") assert [release.format for release in releases] == ["m4b", "zip"] assert all(release.content_type == "audiobook" for release in releases)