1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
from .support import HPyTest
class TestImport(HPyTest):
def test_ImportModule(self):
import pytest
import sys
mod = self.make_module("""
HPyDef_METH(f, "f", HPyFunc_O)
static HPy f_impl(HPyContext *ctx, HPy self, HPy h_name)
{
// we use bytes because ATM we don't have HPyUnicode_AsUTF8 or similar
const char *name = HPyBytes_AsString(ctx, h_name);
if (name == NULL)
return HPy_NULL;
return HPyImport_ImportModule(ctx, name);
}
@EXPORT(f)
@INIT
""")
sys2 = mod.f(b'sys')
assert sys is sys2
with pytest.raises(ImportError):
mod.f(b'This is the name of a module which does not exist, hopefully')
|