def test_2312_code_loader_missing_init(tmp_path) -> None: cl = loader.CodeLoader(tmp_path) code: str = """ def test(): return 10 """ sha1sum = hashlib.new("sha1") sha1sum.update(code.encode()) hv: str = sha1sum.hexdigest() cl.deploy_version([ModuleSource("inmanta_plugins.my_module.my_sub_mod", code, hv)]) import inmanta_plugins.my_module.my_sub_mod as sm assert sm.test() == 10
def test_code_loader_import_error(tmp_path, caplog): """Test loading code with an import error""" cl = loader.CodeLoader(tmp_path) code = """ import badimmport def test(): return 10 """ sha1sum = hashlib.new("sha1") sha1sum.update(code.encode()) hv = sha1sum.hexdigest() with pytest.raises(ImportError): import inmanta_bad_unit_test # NOQA cl.deploy_version([ModuleSource("inmanta_plugins.inmanta_bad_unit_test", code, hv)]) assert "ModuleNotFoundError: No module named 'badimmport'" in caplog.text
def deploy(code: str) -> None: sha1sum = hashlib.new("sha1") sha1sum.update(code.encode()) hv: str = sha1sum.hexdigest() cl.deploy_version([ModuleSource("inmanta_plugins.inmanta_unit_test", code, hv)])
def get_module_source(module: str, code: str) -> ModuleSource: sha1sum = hashlib.new("sha1") sha1sum.update(code.encode()) hv: str = sha1sum.hexdigest() return ModuleSource(module, code, hv)