Test swig runtime module contains expected names

This commit is contained in:
William S Fulton 2025-05-13 21:42:56 +01:00
parent 831fc60691
commit d966fd3ba1
2 changed files with 19 additions and 0 deletions

View File

@ -1,7 +1,24 @@
import python_moduleimport import python_moduleimport
# Test custom moduleimport in %module
if python_moduleimport.simple_function(99) != 99: if python_moduleimport.simple_function(99) != 99:
raise RuntimeError("simple_function") raise RuntimeError("simple_function")
if python_moduleimport.extra_import_variable != "custom import of _python_moduleimport": if python_moduleimport.extra_import_variable != "custom import of _python_moduleimport":
raise RuntimeError("custom import") raise RuntimeError("custom import")
# Test the swig runtime module contains the expected names/types
import importlib
swig_runtime_version = python_moduleimport.runtime_version()
swig_runtime_data = importlib.import_module("swig_runtime_data" + swig_runtime_version) # Equivalent to (for version 5): import swig_runtime_data5 as swig_runtime_data
names = dir(swig_runtime_data)
expected_names = ("SwigPyObject", "SwigPyPacked", "SwigVarLink")
for name in expected_names:
if name not in names:
raise RuntimeError("{} not in {}".format(name, names))
cvar_type = type(python_moduleimport.cvar)
if cvar_type.__name__ != "SwigVarLink":
raise RuntimeError("cvar type name is incorrect: {}".format(cvar_type.__name__))

View File

@ -23,4 +23,6 @@ from $module import *
%inline %{ %inline %{
int simple_function(int i) { return i; } int simple_function(int i) { return i; }
int globalvar = 99;
const char * runtime_version() { return SWIG_RUNTIME_VERSION; }
%} %}