Example #1
0
    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
Example #2
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()
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
    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()