code: def test_should_be_deserializable(
      self, mocked_builtin_entity_parser, mocked_custom_entity_parser
  ):
      # Given
      mocked_builtin_entity_parser.from_path = MagicMock()
      mocked_custom_entity_parser.from_path = MagicMock()
  
      @IntentParser.register("test_intent_parser1", True)
      class TestIntentParser1(MockIntentParser):
          pass
  
      @IntentParser.register("test_intent_parser2", True)
      class TestIntentParser2(MockIntentParser):
          pass
  
      dataset_metadata = {
          "language_code": "en",
          "entities": {
              "Temperature": {
                  "automatically_extensible": True,
                  "utterances": {
                      "boiling": "hot",
                      "cold": "cold",
                      "hot": "hot",
                      "iced": "cold",
                  },
              }
          },
          "slot_name_mappings": {
              "MakeCoffee": {"number_of_cups": "snips/number"},
              "MakeTea": {
                  "beverage_temperature": "Temperature",
                  "number_of_cups": "snips/number",
              },
          },
      }
      engine_dict = {
          "unit_name": "nlu_engine",
          "dataset_metadata": dataset_metadata,
          "config": {
              "unit_name": "nlu_engine",
              "intent_parsers_configs": [
                  {"unit_name": "test_intent_parser1"},
                  {"unit_name": "test_intent_parser2"},
              ],
          },
          "intent_parsers": [
              "test_intent_parser1",
              "test_intent_parser2",
          ],
          "builtin_entity_parser": "builtin_entity_parser",
          "custom_entity_parser": "custom_entity_parser",
          "model_version": snips_nlu.__model_version__,
          "training_package_version": snips_nlu.__version__,
      }
      self.tmp_file_path.mkdir()
      parser1_path = self.tmp_file_path / "test_intent_parser1"
      parser1_path.mkdir()
      parser2_path = self.tmp_file_path / "test_intent_parser2"
      parser2_path.mkdir()
      (self.tmp_file_path / "resources").mkdir()
      self.writeJsonContent(
          self.tmp_file_path / "nlu_engine.json", engine_dict
      )
      self.writeJsonContent(
          parser1_path / "metadata.json",
          {"unit_name": "test_intent_parser1", "fitted": True},
      )
      self.writeJsonContent(
          parser2_path / "metadata.json",
          {"unit_name": "test_intent_parser2", "fitted": True},
      )
  
      # When
      engine = SnipsNLUEngine.from_path(self.tmp_file_path)
  
      # Then
      expected_engine_config = {
          "unit_name": "nlu_engine",
          "intent_parsers_configs": [
              {"unit_name": "test_intent_parser1"},
              {"unit_name": "test_intent_parser2"},
          ],
      }
      self.assertDictEqual(dataset_metadata, engine.dataset_metadata)
      self.assertDictEqual(
          expected_engine_config, engine.config.to_dict()
      )
      self.assertIsInstance(engine.intent_parsers[0], TestIntentParser1)
      self.assertIsInstance(engine.intent_parsers[1], TestIntentParser2)
      mocked_custom_entity_parser.from_path.assert_called_once_with(
          self.tmp_file_path / "custom_entity_parser"
      )
      mocked_builtin_entity_parser.from_path.assert_called_once_with(
          self.tmp_file_path / "builtin_entity_parser"
      )
  
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 12 for calling the TestSnipsNLUEngine obj's underlying member method code with example usage: obj.test_should_be_deserializable(mocked_builtin_entity_parser, mocked_custom_entity_parser) without return types