aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/libsample/modifications.h4
-rw-r--r--tests/samplebinding/modifications_test.py4
-rw-r--r--tests/samplebinding/typesystem_sample.xml6
3 files changed, 14 insertions, 0 deletions
diff --git a/tests/libsample/modifications.h b/tests/libsample/modifications.h
index 2acffa406..f17261473 100644
--- a/tests/libsample/modifications.h
+++ b/tests/libsample/modifications.h
@@ -26,6 +26,7 @@
#include "libsamplemacros.h"
#include <utility>
#include "point.h"
+#include "oddbool.h"
class ObjectType;
@@ -109,6 +110,9 @@ public:
bool nonConversionRuleForArgumentWithDefaultValue(ObjectType** object = 0);
ObjectType* getObject() const { return m_object; }
+ // Inject code with a %CONVERTTOPYTHON that receives an user's primitive type.
+ static inline OddBool passOddBool(OddBool ob) { return ob; }
+
private:
ObjectType* m_object;
};
diff --git a/tests/samplebinding/modifications_test.py b/tests/samplebinding/modifications_test.py
index 3cb502ce6..bc7b38dfa 100644
--- a/tests/samplebinding/modifications_test.py
+++ b/tests/samplebinding/modifications_test.py
@@ -154,5 +154,9 @@ class ModificationsTest(unittest.TestCase):
self.assertEqual(obj, self.mods.getObject())
self.assertEqual(obj.objectName(), 'MyObject')
+ def testInjectCodeWithConversionVariableForUserPrimitive(self):
+ self.assertTrue(Modifications.invertBoolean(False))
+ self.assertFalse(Modifications.invertBoolean(True))
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml
index 0209aedd4..56ef0d6cf 100644
--- a/tests/samplebinding/typesystem_sample.xml
+++ b/tests/samplebinding/typesystem_sample.xml
@@ -742,6 +742,12 @@
%PYARG_0 = Shiboken::makeTuple(%0, tmpObject);
</inject-code>
</modify-function>
+ <modify-function signature="passOddBool(OddBool)" rename="invertBoolean">
+ <inject-code class="target" position="beginning">
+ %RETURN_TYPE %0 = !%CPPSELF.%FUNCTION_NAME(%1);
+ %PYARG_0 = %CONVERTTOPYTHON[OddBool](%0);
+ </inject-code>
+ </modify-function>
</object-type>
<object-type name="AbstractModifications">