def test_media_type_warning(self): """Tests calling ParseTriggerRuleConfiguration.validate_trigger_for_recipe() with a warning for a mis-matched media type""" rule_json_str = '{"version": "1.0", "condition": {"media_type": "text/plain", "data_types": ["A", "B"]}, "data": {"input_data_name": "my_input", "workspace_name": "my_workspace"}}' rule_config = ParseTriggerRuleConfiguration(PARSE_TYPE, json.loads(rule_json_str)) definition_json_str = '{"version": "1.0", "input_data": [{"name": "my_input", "type": "file", "media_types": ["application/json"]}], "jobs": [{"name": "my_job", "job_type": {"name": "test_job", "version": "1.0"}}]}' recipe_definition = RecipeDefinition(json.loads(definition_json_str)) warnings = rule_config.validate_trigger_for_recipe(recipe_definition) self.assertEqual(len(warnings), 1)
def test_successful(self): '''Tests calling ParseTriggerRuleConfiguration.validate_trigger_for_recipe() successfully with no warnings''' rule_json_str = '{"version": "1.0", "condition": {"media_type": "text/plain", "data_types": ["A", "B"]}, "data": {"input_data_name": "my_input", "workspace_name": "my_workspace"}}' rule_config = ParseTriggerRuleConfiguration(PARSE_TYPE, json.loads(rule_json_str)) definition_json_str = '{"version": "1.0", "input_data": [{"name": "my_input", "type": "file", "media_types": ["text/plain", "application/json"]}], "jobs": [{"name": "my_job", "job_type": {"name": "test_job", "version": "1.0"}}]}' recipe_definition = RecipeDefinition(json.loads(definition_json_str)) warnings = rule_config.validate_trigger_for_recipe(recipe_definition) self.assertListEqual(warnings, [])