def test_is_itunes_bought_file_for_itunes_file(monkeypatch): monkeypatch.setattr( 'mutagen.mp4.MP4', lambda *args: MagicMock(tags={ 'apID': 'owner information', 'aART': 'Album Artist', })) assert is_itunes_bought_file(Path('tests/fixtures/1 itunes file.m4a')) monkeypatch.setattr( 'mutagen.mp4.MP4', lambda *args: MagicMock(tags={ 'ownr': 'owner information', 'aART': 'Album Artist', })) assert is_itunes_bought_file(Path('tests/fixtures/1 itunes file.m4a'))
def test_is_itunes_bought_file(monkeypatch): class MockCompletedProcess: def __init__(self, stdout): self.stdout = stdout monkeypatch.setattr( 'apit.atomic_parser.read_metadata', lambda *args: MockCompletedProcess('Atom "ownr" contains')) assert is_itunes_bought_file('tests/fixtures/1 itunes file.m4a')
def to_action_options(file: Path, options) -> Mapping[str, Union[Optional[Song], bool, Optional[int], Optional[Path]]]: disc_and_track = extract_disc_and_track_number(file) disc: Optional[int] = None track: Optional[int] = None if disc_and_track is not None: disc, track = disc_and_track return { 'song': find_song(options['songs'], disc=disc, track=track), 'disc': disc, 'track': track, 'is_original': is_itunes_bought_file(file), 'should_backup': options['should_backup'], 'cover_path': options['cover_path'], }
def test_is_itunes_bought_file_error(monkeypatch): def _raise(*args): raise ApitError monkeypatch.setattr('apit.atomic_parser.read_metadata', _raise) assert not is_itunes_bought_file(Path('tests/fixtures/1 itunes file.m4a'))
def __init__(self, file: Path, options): super().__init__(file, options) self.album: Album = self.options['album'] self.is_original = is_itunes_bought_file(self.file) self.file_match = extract_disc_and_track_number(self.file)