def test_import_user_module_from_file(self): self.assertIsNone(registry.get_builder_class("always_one")) self.assertIsNone(registry.get_model_class("simple")) user_dir = self._get_user_dir() user_file = os.path.join(user_dir, "models", "simple.py") import_user_module(user_file) # Only model should be found and build should be none self.assertIsNone(registry.get_builder_class("always_one")) self.assertIsNotNone(registry.get_model_class("simple")) self.assertTrue("mmf_user_dir" in sys.modules) self.assertTrue(user_dir in get_mmf_env("user_dir"))
def test_import_user_module_from_directory_absolute(self, abs_path=True): # Make sure the modules are not available first self.assertIsNone(registry.get_builder_class("always_one")) self.assertIsNone(registry.get_model_class("simple")) self.assertFalse("mmf_user_dir" in sys.modules) # Now, import and test user_dir = self._get_user_dir(abs_path) import_user_module(user_dir) self.assertIsNotNone(registry.get_builder_class("always_one")) self.assertIsNotNone(registry.get_model_class("simple")) self.assertTrue("mmf_user_dir" in sys.modules) self.assertTrue(user_dir in get_mmf_env("user_dir"))
def import_user_dir(self): # Try user_dir options in order of MMF configuration hierarchy # First try the default one, which can be set via environment as well user_dir = self._default_config.env.user_dir # Now, check user's config user_config_user_dir = self._user_config.get("env", {}).get("user_dir", None) if user_config_user_dir: user_dir = user_config_user_dir # Finally, check opts opts_user_dir = self._opts_config.get("env", {}).get("user_dir", None) if opts_user_dir: user_dir = opts_user_dir if user_dir: import_user_module(user_dir)