From b7169ca7fe92c5874076ff47f9b4ec7954acc480 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Thu, 18 Aug 2011 13:12:09 -0300 Subject: Added a test case for a bit-field structure member. Also moved a couple of tests from samplebindings to otherbindings. --- tests/otherbinding/module_reload_test.py | 25 +++++++++++++ tests/otherbinding/test_module_template.py | 12 ++++++ tests/otherbinding/typediscovery_test.py | 59 ++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 tests/otherbinding/module_reload_test.py create mode 100644 tests/otherbinding/test_module_template.py create mode 100644 tests/otherbinding/typediscovery_test.py (limited to 'tests/otherbinding') diff --git a/tests/otherbinding/module_reload_test.py b/tests/otherbinding/module_reload_test.py new file mode 100644 index 000000000..1863fc989 --- /dev/null +++ b/tests/otherbinding/module_reload_test.py @@ -0,0 +1,25 @@ +import os +import sys +import shutil +import unittest + +orig_path = os.path.join(os.path.dirname(__file__)) +workdir = os.getcwd() +src = os.path.join(orig_path, 'test_module_template.py') +dst = os.path.join(workdir, 'test_module.py') +shutil.copyfile(src, dst) +sys.path.append(workdir) + +class TestModuleReloading(unittest.TestCase): + + def testModuleReloading(self): + '''Test module reloading with on-the-fly modifications.''' + import test_module + for i in range(3): + oldObject = test_module.obj + self.assertTrue(oldObject is test_module.obj) + reload(test_module) + self.assertFalse(oldObject is test_module.obj) + +if __name__ == "__main__": + unittest.main() diff --git a/tests/otherbinding/test_module_template.py b/tests/otherbinding/test_module_template.py new file mode 100644 index 000000000..b6cfb8389 --- /dev/null +++ b/tests/otherbinding/test_module_template.py @@ -0,0 +1,12 @@ +from other import * +from sample import * + + +class MyObjectType(ObjectType): + pass + +class MyOtherObjectType(OtherObjectType): + value = 10 + + +obj = MyObjectType() diff --git a/tests/otherbinding/typediscovery_test.py b/tests/otherbinding/typediscovery_test.py new file mode 100644 index 000000000..aab768049 --- /dev/null +++ b/tests/otherbinding/typediscovery_test.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# This file is part of the Shiboken Python Bindings Generator project. +# +# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +# +# Contact: PySide team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public License +# version 2.1 as published by the Free Software Foundation. Please +# review the following information to ensure the GNU Lesser General +# Public License version 2.1 requirements will be met: +# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +# # +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA + +'''Test cases for type discovery''' + +import unittest + +from sample import Abstract, Base1, Derived, MDerived1, MDerived3, SonOfMDerived1 +from other import OtherMultipleDerived + +class TypeDiscoveryTest(unittest.TestCase): + + def testPureVirtualsOfImpossibleTypeDiscovery(self): + a = Derived.triggerImpossibleTypeDiscovery() + self.assertEqual(type(a), Abstract) + # call some pure virtual method + a.pureVirtual() + + def testAnotherImpossibleTypeDiscovery(self): + a = Derived.triggerAnotherImpossibleTypeDiscovery() + self.assertEqual(type(a), Derived) + + def testMultipleInheritance(self): + obj = OtherMultipleDerived.createObject("Base1"); + self.assertEqual(type(obj), Base1) + obj = OtherMultipleDerived.createObject("MDerived1"); + self.assertEqual(type(obj), MDerived1) + obj = OtherMultipleDerived.createObject("SonOfMDerived1"); + self.assertEqual(type(obj), SonOfMDerived1) + obj = OtherMultipleDerived.createObject("MDerived3"); + self.assertEqual(type(obj), MDerived3) + obj = OtherMultipleDerived.createObject("OtherMultipleDerived"); + self.assertEqual(type(obj), OtherMultipleDerived) + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3