code: def test_strict_get_single_artifact_raises_error_when_non_singular_list(
      self,
  ):
      with self.assertRaisesRegex(
          errors.InvalidTypeHintError,
          r"type_hint = <class \'(.*?)Examples\'> but got 2 artifacts\. Please"
          r" use list\[Examples\] or Optional\[Examples\] annotation instead\.",
      ):
          self._environ.strict_get("multiple_artifacts_input", _Example)
      with self.assertRaisesRegex(
          errors.InvalidTypeHintError,
          r"type_hint = <class \'(.*?)Examples\'> but got 0 artifacts\. Please"
          r" use list\[Examples\] or Optional\[Examples\] annotation instead\.",
      ):
          self._environ.strict_get("empty_artifact_input", _Example)
  
imports: from typing import Any, Callable, List, Optional, Type, Union
  from absl.testing import parameterized
  import tensorflow
  from tfx.orchestration.experimental.core import test_utils
  from tfx.orchestration.portable import data_types
  from tfx.orchestration.portable import execution_environ
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import artifact
  from tfx.types import standard_artifacts
  from tfx.utils.di import errors
label_desc: Use image node_id 5 for calling the ExecutionEnvironTest obj's underlying member method code with example usage: obj.test_strict_get_single_artifact_raises_error_when_non_singular_list() without return types