code: def test_put_rule_without_event_pattern(event_bridge_rule_helper):
      source_pipeline_events = [
          FeatureProcessorPipelineEvents(
              pipeline_name="test_pipeline",
              pipeline_execution_status=[
                  FeatureProcessorPipelineExecutionStatus.SUCCEEDED
              ],
          )
      ]
  
      event_bridge_rule_helper._generate_pipeline_arn_and_name = Mock(
          return_value=dict(
              pipeline_arn="pipeline_arn", pipeline_name="pipeline_name"
          )
      )
      event_bridge_rule_helper.event_bridge_rule_client.put_rule = Mock(
          return_value=dict(RuleArn="rule_arn")
      )
      event_bridge_rule_helper.put_rule(
          source_pipeline_events=source_pipeline_events,
          target_pipeline="target_pipeline",
          event_pattern=None,
          state="Disabled",
      )
  
      event_bridge_rule_helper.event_bridge_rule_client.put_rule.assert_called_with(
          Name="target_pipeline",
          EventPattern=(
              '{"detail-type": ["SageMaker Model Building Pipeline Execution Status Change"], '
              '"source": ["aws.sagemaker"], "detail": {"currentPipelineExecutionStatus": '
              '["Succeeded"], "pipelineArn": ["pipeline_arn"]}}'
          ),
          State="Disabled",
      )
  
imports: from __future__ import absolute_import
  from mock import Mock
  from sagemaker.session import Session
  from sagemaker.feature_store.feature_processor._event_bridge_rule_helper import EventBridgeRuleHelper
  from botocore.exceptions import ClientError
  from sagemaker.feature_store.feature_processor._feature_processor_pipeline_events import FeatureProcessorPipelineEvents, FeatureProcessorPipelineExecutionStatus
  import pytest
label_desc: Use image node_id 3 for calling a global function with example usage: test_put_rule_without_event_pattern(event_bridge_rule_helper) without return types