def test_supported_modalities(self):
        """Test language/text modality is required and at least one of audio, image, video is provided."""
        base_test_case = {
            "dimensions": 764,
            "type": "languagebind",
            "name": "test_model",
        }

        test_cases = [
            ({"supportedModalities": [Modality.TEXT], **base_test_case}, "Must support one of audio, image, video"),
            ({"supportedModalities": [Modality.IMAGE], **base_test_case},  "Text modality is required"),
            ({"supportedModalities": ["text1"], **base_test_case}, "Invalid modality, "
                                                                   "must be one of 'text', 'image', 'audio', 'video'"),
            ({"supportedModalities": [None], **base_test_case}, "Invalid modality, can't be None"),
            ({"supportedModalities": [], **base_test_case}, "Invalid modality, can't be empty"),
            ({"supportedModalities": {}, **base_test_case}, "Invalid data type, must be a list"),
        ]

        for test_case, msg in test_cases:
            with self.subTest(msg=msg):
                with self.assertRaises(ValidationError) as context:
                    LanguagebindModelProperties(**test_case)
                self.assertIn("supported_modalities", str(context.exception))
Test language/text modality is required and at least one of audio, image, video is provided.
tests/unit_tests/marqo/inference/native_inference/test_languagebind_model_properties.py