aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtCore/qvariant_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtCore/qvariant_test.py')
-rw-r--r--tests/QtCore/qvariant_test.py141
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/QtCore/qvariant_test.py b/tests/QtCore/qvariant_test.py
new file mode 100644
index 000000000..5c23b4049
--- /dev/null
+++ b/tests/QtCore/qvariant_test.py
@@ -0,0 +1,141 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+'''Test cases for QVariant'''
+
+import unittest
+import sys
+
+from PySide.QtCore import QSize, QVariant, QByteArray, QStringList, QString
+
+
+class QVariantToNumber(unittest.TestCase):
+ '''QVariant of number types'''
+
+ def testToNumberInt(self):
+ '''QVariant(int).toInt()'''
+ obj = QVariant('37')
+ self.assertEqual((37, True), obj.toInt())
+
+ def testToNumberLongLong(self):
+ '''QVariant(int).toLongLong()'''
+ obj = QVariant('37')
+ self.assertEqual((37, True), obj.toLongLong())
+
+ def testToNumberUInt(self):
+ '''QVariant(int).toUInt()'''
+ obj = QVariant('37')
+ self.assertEqual((37, True), obj.toUInt())
+
+ def testToNumberUIntNegative(self):
+ '''QVariant(negative int).toUInt()'''
+ obj = QVariant('-37')
+ self.assert_(not obj.toUInt()[1])
+
+ def testToNumberULongLong(self):
+ '''QVariant(int).toULongLong()'''
+ obj = QVariant('37')
+ self.assertEqual((37, True), obj.toULongLong())
+
+ def testToNumberULongLongNegative(self):
+ '''QVariant(negative int).toULongLong()'''
+ obj = QVariant('-37')
+ self.assert_(not obj.toULongLong()[1])
+
+ def testToNumberFloat(self):
+ '''QVariant(double).toFloat()'''
+ obj = QVariant('37.109')
+ self.assertEqual((37.109, True), obj.toDouble())
+
+
+class QVariantTypeName(unittest.TestCase):
+ '''QVariant.typeName()'''
+
+ def testTypeNameQString(self):
+ '''QVariant(QString).typeName()'''
+ obj = QVariant(QString('aaaa'))
+ self.assertEqual('QString', obj.typeName())
+
+ def testTypeNameString(self):
+ '''QVariant(PyString).typeName()'''
+ obj = QVariant('aaaa')
+ self.assertEqual('QString', obj.typeName())
+
+ def testTypeNameInt(self):
+ '''QVariant(int).typeName()'''
+ obj = QVariant(34)
+ self.assertEqual('int', obj.typeName())
+
+ def testTypeNameDouble(self):
+ '''QVariant(double).typeName()'''
+ obj = QVariant(3.14)
+ self.assertEqual('double', obj.typeName())
+
+ def testTypeNameBool(self):
+ '''QVariant(bool).typeName()'''
+ obj = QVariant(True)
+ self.assertEqual('bool', obj.typeName())
+
+ def testTypeNameQByteArray(self):
+ '''QVariant(QByteArray).typeName()'''
+ obj = QVariant(QByteArray('aaaa'))
+ self.assertEqual('QByteArray', obj.typeName())
+
+ def testTypeNameNone(self):
+ '''QVariant().typeName()'''
+ obj = QVariant()
+ self.assertEqual(None, obj.typeName())
+
+ def testTypeNameQVariantList(self):
+ '''QVariant(QVariantList).typeName()'''
+ obj = QVariant([1, 2, 3, 4])
+ self.assertEqual('QVariantList', obj.typeName())
+
+ obj = QVariant([1.0, 2.2, 3.3, 4.2])
+ self.assertEqual('QVariantList', obj.typeName())
+
+ obj = QVariant(['aaa', 'bbb', 'ccc', 'dddd'])
+ self.assertEqual('QVariantList', obj.typeName())
+
+ obj = QVariant([QString('aaa'), QString('bbb'),
+ QString('ccc'), QString('dddd')])
+ self.assertEqual('QVariantList', obj.typeName())
+
+ def testTypeNameQStringList(self):
+ '''QVariant(QStringList).typeName()'''
+ obj = QVariant(QStringList())
+ self.assertEqual('QStringList', obj.typeName())
+ obj = QVariant(QStringList(['aaa', 'bbb', 'ccc']))
+ self.assertEqual('QStringList', obj.typeName())
+
+
+class QVariantConstructor(unittest.TestCase):
+ '''More qvariant constructions'''
+
+ def testCopyConstructor(self):
+ '''QVariant copy constructor'''
+ obj = QVariant(1)
+ cpy = QVariant(obj)
+
+ self.assertEqual(obj.type(), cpy.type())
+
+ def testQStringConstructor(self):
+ '''QVariant(PyString).type == QVariant.string'''
+ obj = QVariant("PySide")
+ self.assertEqual(obj.type(), QVariant.String)
+
+ def testQSizeConstructor(self):
+ '''QVariant(QSize).type == QVariant.Size'''
+ mysize = QSize(0, 0)
+ variant = QVariant(mysize)
+
+ self.assertEqual(variant.type(), QVariant.Size)
+ self.assertEqual(variant.toSize(), mysize)
+
+ def testToList(self):
+ v = QVariant((1,2,3))
+ self.assertEqual(v.toList(), (1, 2, 3))
+ v = QVariant([0,1,2])
+ self.assertEqual(v.toList(), [0, 1, 2])
+
+if __name__ == '__main__':
+ unittest.main()