# SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project import pytest from vllm.multimodal import MULTIMODAL_REGISTRY from ....conftest import ImageTestAssets from ...utils import build_model_context # TODO: to be updated to "google/gemma-4-e2b-it" once the models are available GEMMA4_MODEL_ID = "google/gemma-4-E2B-it" @pytest.mark.parametrize("model_id", [GEMMA4_MODEL_ID]) def test_limit_mm_per_prompt( image_assets: ImageTestAssets, model_id: str, ): """Test that limit_mm_per_prompt accurately restricts multiple images.""" # We only allow 1 image ctx = build_model_context( model_id, mm_processor_kwargs={}, limit_mm_per_prompt={"image": 1}, ) processor = MULTIMODAL_REGISTRY.create_processor(ctx.model_config) # Provide 2 images in the prompt prompt = "" # image_assets usually has multiple images images = [asset.pil_image for asset in image_assets][:2] if len(images) < 2: images = [images[0], images[0]] mm_data = {"image": images} # Expect ValueError when exceeding limit with pytest.raises(ValueError, match="At most 1 image"): processor( prompt, mm_items=processor.info.parse_mm_data(mm_data), hf_processor_mm_kwargs={}, )