aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/tests/samplebinding/enum_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/tests/samplebinding/enum_test.py')
-rw-r--r--sources/shiboken2/tests/samplebinding/enum_test.py181
1 files changed, 0 insertions, 181 deletions
diff --git a/sources/shiboken2/tests/samplebinding/enum_test.py b/sources/shiboken2/tests/samplebinding/enum_test.py
deleted file mode 100644
index 7e1cac8c0..000000000
--- a/sources/shiboken2/tests/samplebinding/enum_test.py
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-'''Test cases for Python representation of C++ enums.'''
-
-import os
-import sys
-import unittest
-
-import sample
-from sample import SampleNamespace, ObjectType, Event
-from py3kcompat import IS_PY3K, b
-
-def createTempFile():
- if sys.version_info >= (2, 6):
- import tempfile
- return tempfile.SpooledTemporaryFile(mode='rw')
- else:
- return os.tmpfile()
-
-class EnumTest(unittest.TestCase):
- '''Test case for Python representation of C++ enums.'''
-
- def testEnumRepr(self):
- enum = SampleNamespace.Option(1)
- self.assertEqual(eval(repr(enum)), enum)
-
- enum = SampleNamespace.Option(999)
- self.assertEqual(eval(repr(enum)), enum)
-
- def testHashability(self):
- self.assertEqual(hash(SampleNamespace.TwoIn), hash(SampleNamespace.TwoOut))
- self.assertNotEqual(hash(SampleNamespace.TwoIn), hash(SampleNamespace.OneIn))
-
- def testEnumValuesInsideEnum(self):
- '''Enum values should be accessible inside the enum as well as outside.'''
- for value_name in SampleNamespace.Option.values:
- enum_item1 = getattr(SampleNamespace.Option, value_name)
- enum_item2 = getattr(SampleNamespace, value_name)
- self.assertEqual(enum_item1, enum_item2)
-
- def testPassingIntegerOnEnumArgument(self):
- '''Tries to use an integer in place of an enum argument.'''
- self.assertRaises(TypeError, SampleNamespace.getNumber, 1)
-
- def testBuildingEnumFromIntegerValue(self):
- '''Tries to build the proper enum using an integer.'''
- SampleNamespace.getNumber(SampleNamespace.Option(1))
-
- def testBuildingEnumWithDefaultValue(self):
- '''Enum constructor with default value'''
- enum = SampleNamespace.Option()
- self.assertEqual(enum, SampleNamespace.None_)
-
- def testEnumConversionToAndFromPython(self):
- '''Conversion of enum objects from Python to C++ back again.'''
- enumout = SampleNamespace.enumInEnumOut(SampleNamespace.TwoIn)
- self.assertTrue(enumout, SampleNamespace.TwoOut)
- self.assertEqual(repr(enumout), repr(SampleNamespace.TwoOut))
-
- def testEnumConstructorWithTooManyParameters(self):
- '''Calling the constructor of non-extensible enum with the wrong number of parameters.'''
- self.assertRaises(TypeError, SampleNamespace.InValue, 13, 14)
-
- def testEnumConstructorWithNonNumberParameter(self):
- '''Calling the constructor of non-extensible enum with a string.'''
- self.assertRaises(TypeError, SampleNamespace.InValue, '1')
-
- def testEnumItemAsDefaultValueToIntArgument(self):
- '''Calls function with an enum item as default value to an int argument.'''
- self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(), SampleNamespace.ZeroIn)
- self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(SampleNamespace.ZeroOut), SampleNamespace.ZeroOut)
- self.assertEqual(SampleNamespace.enumItemAsDefaultValueToIntArgument(123), 123)
-
- def testAnonymousGlobalEnums(self):
- '''Checks availability of anonymous global enum items.'''
- self.assertEqual(sample.AnonymousGlobalEnum_Value0, 0)
- self.assertEqual(sample.AnonymousGlobalEnum_Value1, 1)
-
- def testAnonymousClassEnums(self):
- '''Checks availability of anonymous class enum items.'''
- self.assertEqual(SampleNamespace.AnonymousClassEnum_Value0, 0)
- self.assertEqual(SampleNamespace.AnonymousClassEnum_Value1, 1)
-
- def testEnumClasses(self):
- # C++ 11: values of enum classes need to be fully qualified to match C++
- sum = Event.EventTypeClass.Value1 + Event.EventTypeClass.Value2
- self.assertEqual(sum, 1)
-
- def testSetEnum(self):
- event = Event(Event.ANY_EVENT)
- self.assertEqual(event.eventType(), Event.ANY_EVENT)
- event.setEventType(Event.BASIC_EVENT)
- self.assertEqual(event.eventType(), Event.BASIC_EVENT)
- event.setEventTypeByConstRef(Event.SOME_EVENT)
- self.assertEqual(event.eventType(), Event.SOME_EVENT)
-
- def testEnumTpPrintImplementation(self):
- '''Without SbkEnum.tp_print 'print' returns the enum represented as an int.'''
- tmpfile = createTempFile()
- if IS_PY3K:
- from py3k import printToFile
- printToFile(tmpfile, Event.ANY_EVENT)
- else:
- sys.stdout = tmpfile
- print(Event.ANY_EVENT)
- sys.stdout = sys.__stdout__
- tmpfile.seek(0)
- text = tmpfile.read().strip()
- tmpfile.close()
- self.assertEqual(text, str(Event.ANY_EVENT))
- self.assertEqual(text, repr(Event.ANY_EVENT))
-
- def testEnumArgumentWithDefaultValue(self):
- '''Option enumArgumentWithDefaultValue(Option opt = UnixTime);'''
- self.assertEqual(SampleNamespace.enumArgumentWithDefaultValue(), SampleNamespace.UnixTime)
- self.assertEqual(SampleNamespace.enumArgumentWithDefaultValue(SampleNamespace.RandomNumber), SampleNamespace.RandomNumber)
-
-
-class MyEvent(Event):
- def __init__(self):
- Event.__init__(self, Event.EventType(999))
-
-class OutOfBoundsTest(unittest.TestCase):
- def testValue(self):
- e = MyEvent()
- self.assertEqual(repr(e.eventType()), 'sample.Event.EventType(999)')
-
- def testNoneName(self):
- e = MyEvent()
- t = e.eventType()
- self.assertEqual(t.name, None)
-
-class EnumOverloadTest(unittest.TestCase):
- '''Test case for overloads involving enums'''
-
- def testWithInt(self):
- '''Overload with Enums and ints with default value'''
- o = ObjectType()
-
- self.assertEqual(o.callWithEnum('', Event.ANY_EVENT, 9), 81)
- self.assertEqual(o.callWithEnum('', 9), 9)
-
-class EnumOperators(unittest.TestCase):
- '''Test case for operations on enums'''
-
- def testInequalitySameObject(self):
- self.assertFalse(Event.ANY_EVENT != Event.ANY_EVENT)
-
-
-if __name__ == '__main__':
- unittest.main()
-