code: def test_other_modules(self):
      # Create a new package in a temporary dir
      packagedir = self.TEST_DIR / "testpackage"
      packagedir.mkdir()  # pylint: disable=no-member
      (packagedir / "__init__.py").touch()  # pylint: disable=no-member
  
      # And add that directory to the path
      sys.path.insert(0, unicode(self.TEST_DIR))
  
      # Write out a duplicate model there, but registered under a different name.
      from allennlp.models import simple_tagger
  
      with open(simple_tagger.__file__) as model_file:
          code = model_file.read().replace(
              """@Model.register("simple_tagger")""",
              """@Model.register("duplicate-test-tagger")""",
          )
  
      with open(packagedir / "model.py", "w") as new_model_file:
          new_model_file.write(code)
  
      # Copy fixture there too.
      shutil.copy(
          self.FIXTURES_ROOT / "data" / "sequence_tagging.tsv",
          self.TEST_DIR,
      )
      data_path = unicode(self.TEST_DIR / "sequence_tagging.tsv")
  
      # Write out config file
      config_path = self.TEST_DIR / "config.json"
      config_json = """{
                  "model": {
                          "type": "duplicate-test-tagger",
                          "text_field_embedder": {
                                  "tokens": {
                                          "type": "embedding",
                                          "embedding_dim": 5
                                  }
                          },
                          "encoder": {
                                  "type": "lstm",
                                  "input_size": 5,
                                  "hidden_size": 7,
                                  "num_layers": 2
                          }
                  },
                  "dataset_reader": {"type": "sequence_tagging"},
                  "train_data_path": "$$$",
                  "validation_data_path": "$$$",
                  "iterator": {"type": "basic", "batch_size": 2},
                  "trainer": {
                          "num_epochs": 2,
                          "optimizer": "adam"
                  }
              }""".replace(
          "$$$", data_path
      )
      with open(config_path, "w") as config_file:
          config_file.write(config_json)
  
      serialization_dir = self.TEST_DIR / "serialization"
  
      # Run train with using the non-allennlp module.
      sys.argv = [
          "bin/allennlp",
          "train",
          unicode(config_path),
          "-s",
          unicode(serialization_dir),
      ]
  
      # Shouldn't be able to find the model.
      with pytest.raises(ConfigurationError):
          main()
  
      # Now add the --include-package flag and it should work.
      # We also need to add --recover since the output directory already exists.
      sys.argv.extend(["--recover", "--include-package", "testpackage"])
  
      main()
  
      # Rewrite out config file, but change a value.
      with open(config_path, "w") as new_config_file:
          new_config_file.write(
              config_json.replace(
                  '"num_epochs": 2,', '"num_epochs": 4,'
              )
          )
  
      # This should fail because the config.json does not match that in the serialization directory.
      with pytest.raises(ConfigurationError):
          main()
  
      sys.path.remove(unicode(self.TEST_DIR))
  
file_path: magnitude/pymagnitude/third_party/allennlp/tests/commands/main_test.py
imports: from __future__ import division
  from __future__ import with_statement
  from __future__ import absolute_import
  import shutil
  import sys
  import pytest
  from allennlp.commands import main
  from allennlp.commands.subcommand import Subcommand
  from allennlp.common.checks import ConfigurationError
  from allennlp.common.testing import AllenNlpTestCase
  from io import open
label_desc: Use image node_id 3 for calling the TestMain obj's underlying member method code with example usage: obj.test_other_modules() without return types