def test_exit_code(self): """Return a non-zero exit code if no items are removed.""" args = argparse.Namespace(query="bad", album=False, extra=False) with pytest.raises(SystemExit) as error: remove._parse_args(config=Mock(), session=Mock(), args=args) assert error.value.code != 0
def test_album_tracks(self, tmp_session, mock_album): """Removing an album should also remove all of its tracks.""" args = argparse.Namespace(query="*", album=True, extra=False) tmp_session.merge(mock_album) remove._parse_args(config=Mock(), session=tmp_session, args=args) assert not tmp_session.query(Track).scalar()
def test_album(self, tmp_session, mock_album): """Albums are removed from the database with valid query.""" args = argparse.Namespace(query="*", album=True, extra=False) tmp_session.merge(mock_album) remove._parse_args(config=Mock(), session=tmp_session, args=args) assert not tmp_session.query(Album).scalar()
def test_track(self, tmp_session, mock_track): """Tracks are removed from the database with valid query.""" args = argparse.Namespace(query="*", album=False, extra=False) tmp_session.add(mock_track) remove._parse_args(config=Mock(), session=tmp_session, args=args) assert not tmp_session.query(Track).scalar()
def test_extra(self, tmp_session, real_album): """Extras are removed from the database with valid query. ``mock_album`` isn't working with this test. Likely something to do with the Extra primary key ``_filename`` and how we are mocking filesytem paths. """ args = argparse.Namespace(query="*", album=False, extra=True) tmp_session.merge(real_album) assert real_album.extras remove._parse_args(config=Mock(), session=tmp_session, args=args) assert not tmp_session.query(Extra).scalar()