mirror of https://github.com/swig/swig
Turn on Python annotations testing again
Testing is skipped where there is no support for it, that is, using -builtin or -fastproxy. How to add this support in needs determining, it's not clear how to do so.
This commit is contained in:
parent
8ce010b915
commit
afc915f490
|
@ -1,28 +1,31 @@
|
|||
import sys
|
||||
|
||||
# Disable as no __annotations__ support with -fastproxy and -builtin atm
|
||||
if False: # sys.version_info[0:2] >= (3, 2):
|
||||
if sys.version_info[0:2] >= (3, 2):
|
||||
from python_annotations_c import *
|
||||
|
||||
anno = MakeShort.__annotations__
|
||||
if anno != {'x': 'int', 'return': 'Space::Template< short >'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
# No __annotations__ support with -builtin or -fastproxy
|
||||
annotations_supported = not(is_python_builtin() or is_python_fastproxy())
|
||||
|
||||
anno = global_ints.__annotations__
|
||||
if anno != {'ri': 'int &', 't': 'TemplateShort', 'return': 'int *'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
if annotations_supported:
|
||||
anno = MakeShort.__annotations__
|
||||
if anno != {'x': 'int', 'return': 'Space::Template< short >'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
|
||||
ts = MakeShort(10)
|
||||
anno = global_ints.__annotations__
|
||||
if anno != {'ri': 'int &', 't': 'TemplateShort', 'return': 'int *'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
|
||||
anno = MakeShort.__annotations__
|
||||
if anno != {'x': 'int', 'return': 'Space::Template< short >'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
ts = MakeShort(10)
|
||||
|
||||
anno = ts.mymethod.__annotations__
|
||||
if anno != {'arg2': 'int', 'tt': 'TemplateShort', 'return': 'void'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
anno = MakeShort.__annotations__
|
||||
if anno != {'x': 'int', 'return': 'Space::Template< short >'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
|
||||
# No annotations
|
||||
anno = no_annotations.__annotations__
|
||||
if anno != {}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
anno = ts.mymethod.__annotations__
|
||||
if anno != {'arg2': 'int', 'tt': 'TemplateShort', 'return': 'void'}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
|
||||
# No annotations
|
||||
anno = no_annotations.__annotations__
|
||||
if anno != {}:
|
||||
raise RuntimeError("annotations mismatch: {}".format(anno))
|
||||
|
|
|
@ -24,3 +24,17 @@ int *no_annotations(int &ri, const char *c) { return NULL; }
|
|||
%}
|
||||
%template(TemplateShort) Space::Template<short>;
|
||||
%template(MakeShort) makeT<short>;
|
||||
|
||||
%inline %{
|
||||
#ifdef SWIGPYTHON_BUILTIN
|
||||
int is_python_builtin() { return 1; }
|
||||
#else
|
||||
int is_python_builtin() { return 0; }
|
||||
#endif
|
||||
|
||||
#if defined SWIGPYTHON_FASTPROXY
|
||||
int is_python_fastproxy() { return 1; }
|
||||
#else
|
||||
int is_python_fastproxy() { return 0; }
|
||||
#endif
|
||||
%}
|
||||
|
|
Loading…
Reference in New Issue