code: def testPublishSuccessExecutionFailNewKey(self):
      with metadata.Metadata(
          connection_config=self._connection_config
      ) as m:
          contexts = self._generate_contexts(m)
          execution_id = execution_publish_utils.register_execution(
              m, self._execution_type, contexts
          ).id
          executor_output = execution_result_pb2.ExecutorOutput()
          executor_output.output_artifacts["new_key"].artifacts.add()
  
          with self.assertRaisesRegex(
              RuntimeError, "contains more keys"
          ):
              execution_publish_utils.publish_succeeded_execution(
                  m,
                  execution_id,
                  contexts,
                  {"examples": [standard_artifacts.Examples()]},
                  executor_output,
              )
  
imports: import copy
  from absl.testing import parameterized
  import tensorflow
  from tfx import version
  from tfx.orchestration import metadata
  from tfx.orchestration.portable import execution_publish_utils
  from tfx.orchestration.portable import outputs_utils
  from tfx.orchestration.portable.mlmd import context_lib
  from tfx.orchestration.portable.mlmd import execution_lib
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import artifact
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 8 for calling the ExecutionPublisherTest obj's underlying member method code with example usage: obj.testPublishSuccessExecutionFailNewKey() without return types