Fix Python low-level static member setters.

The low-level API for setting static member variables stopped working
when the fastunpack option was turned on by default. The PyMethodDef
setup requires METH_O, not METH_VARARGS with fastunpack.
This commit is contained in:
William S Fulton 2019-03-20 21:44:34 +00:00
commit 826f1448b8
2 changed files with 26 additions and 1 deletions

View file

@ -45,3 +45,28 @@ if not cvar.StaticBase_statty == 22: raise RuntimeError("cvar statty not 22")
if not StaticBase.grab_statty_base() == 22: raise RuntimeError("cvar statty not 22")
if not cvar.StaticDerived_statty == 222: raise RuntimeError("cvar statty not 222")
if not StaticDerived.grab_statty_derived() == 222: raise RuntimeError("cvar statty not 222")
# Restore
cvar.StaticMemberTest_static_int = 99
cvar.StaticBase_statty = 11
cvar.StaticDerived_statty = 111
# Low-level layer testing
if not is_python_builtin():
from cpp_static import _cpp_static
if not _cpp_static.StaticMemberTest_static_int_get() == 99: raise RuntimeError("low-level static_int not 99")
if not StaticMemberTest.grab_int() == 99: raise RuntimeError("low-level static_int not 99")
_cpp_static.StaticMemberTest_static_int_set(10)
if not _cpp_static.StaticMemberTest_static_int_get() == 10: raise RuntimeError("low-level static_int not 10")
if not StaticMemberTest.grab_int() == 10: raise RuntimeError("low-level static_int not 10")
if not _cpp_static.StaticBase_statty_get() == 11: raise RuntimeError("low-level statty not 11")
if not StaticBase.grab_statty_base() == 11: raise RuntimeError("low-level statty not 11")
if not _cpp_static.StaticDerived_statty_get() == 111: raise RuntimeError("low-level statty not 111")
if not StaticDerived.grab_statty_derived() == 111: raise RuntimeError("low-level statty not 111")
_cpp_static.StaticBase_statty_set(22)
_cpp_static.StaticDerived_statty_set(222)
if not _cpp_static.StaticBase_statty_get() == 22: raise RuntimeError("low-level statty not 22")
if not StaticBase.grab_statty_base() == 22: raise RuntimeError("low-level statty not 22")
if not _cpp_static.StaticDerived_statty_get() == 222: raise RuntimeError("low-level statty not 222")
if not StaticDerived.grab_statty_derived() == 222: raise RuntimeError("low-level statty not 222")