code: def test_should_get_slots(self):
      # Given
      dataset_stream = io.StringIO(
          """
  ---
  type: intent
  name: greeting
  utterances:
  - hello [greeted:name](john)"""
      )
      dataset = Dataset.from_yaml_files("en", [dataset_stream]).json
      input_text = "hello snips"
      greeting_intent = "greeting"
      expected_slots = [
          unresolved_slot(
              match_range=(6, 11),
              value="snips",
              entity="name",
              slot_name="greeted",
          )
      ]
  
      # pylint:disable=unused-variable
      @IntentParser.register("first_intent_parser", True)
      class FirstIntentParser(MockIntentParser):
          pass
  
      @IntentParser.register("second_intent_parser", True)
      class SecondIntentParser(MockIntentParser):
          def get_slots(self, text, intent):
              if text == input_text and intent == greeting_intent:
                  return expected_slots
              return []
  
      # pylint:enable=unused-variable
  
      config = NLUEngineConfig(
          ["first_intent_parser", "second_intent_parser"]
      )
      engine = SnipsNLUEngine(config).fit(dataset)
  
      # When
      res_slots = engine.get_slots(input_text, greeting_intent)
  
      # Then
      expected_slots = [custom_slot(s) for s in expected_slots]
      self.assertListEqual(expected_slots, res_slots)
  
imports: from __future__ import unicode_literals
  import io
  import shutil
  import sys
  from builtins import str
  from unittest import skipIf
  from checksumdir import dirhash
  from mock import MagicMock, patch
  from snips_nlu_parsers import get_all_languages
  import snips_nlu
  from snips_nlu.common.io_utils import temp_dir
  from snips_nlu.constants import END, LANGUAGE, LANGUAGE_EN, RES_ENTITY, RES_INPUT, RES_INTENT, RES_INTENT_NAME, RES_MATCH_RANGE, RES_RAW_VALUE, RES_SLOTS, RES_SLOT_NAME, RES_VALUE, START
  from snips_nlu.dataset import Dataset, validate_and_format_dataset
  from snips_nlu.entity_parser import BuiltinEntityParser, CustomEntityParser, CustomEntityParserUsage
  from snips_nlu.exceptions import IntentNotFoundError, InvalidInputError, NotTrained, IncompatibleModelError, PersistingError, LoadingError
  from snips_nlu.intent_parser import IntentParser
  from snips_nlu.nlu_engine import SnipsNLUEngine
  from snips_nlu.pipeline.configs import NLUEngineConfig
  from snips_nlu.resources import load_resources
  from snips_nlu.result import custom_slot, empty_result, intent_classification_result, parsing_result, resolved_slot, unresolved_slot, extraction_result
  from snips_nlu.tests.utils import FixtureTest, MockIntentParser, get_empty_dataset
label_desc: Use image node_id 3 for calling the TestSnipsNLUEngine obj's underlying member method code with example usage: obj.test_should_get_slots() and returns: list, expected_slots