def testToIntWithHexadecimal(self): hexa = Str("2A") val, ok = hexa.toInt(16) self.assertEqual(type(val), int) self.assertEqual(type(ok), bool) self.assertEqual(val, int(str(hexa), 16)) self.assertEqual(hexa.toInt(), (0, False))
def testSequenceOperators(self): s1 = Str("abcdef") self.assertEqual(len(s1), 6); self.assertEqual(len(Str()), 0); # getitem self.assertEqual(s1[0], "a"); self.assertEqual(s1[1], "b"); self.assertEqual(s1[2], "c"); self.assertEqual(s1[3], "d"); self.assertEqual(s1[4], "e"); self.assertEqual(s1[5], "f"); self.assertEqual(s1[-1], "f"); self.assertEqual(s1[-2], "e"); self.assertRaises(TypeError, s1.__getitem__, 6) # setitem s1[0] = 'A' s1[1] = 'B' self.assertEqual(s1[0], 'A'); self.assertEqual(s1[1], 'B'); self.assertRaises(TypeError, s1.__setitem__(6, 67))
def testDrawText3Exception(self): overload = Overload() args = (Str(), Str(), Str(), 4, 5) result = raisesWithErrorMessage(overload.drawText3, args, TypeError, 'called with wrong argument types:') self.assert_(result)
def testDrawTextIntIntIntIntStr(self): overload = Overload() self.assertEqual(overload.drawText(1, 2, 3, 4, 5, Str()), Overload.Function6) self.assertEqual(overload.drawText(1, 2, 3, 4, 5, ''), Overload.Function6)
def testCallReimplementedMethodWithString(self): '''Calls reimplemented createStr method from C++ with a Python string argument.''' obj = ExtendedVirtualMethods() ok, string = obj.callCreateStr('foo') self.assert_(ok) self.assertEqual(string, Str(obj.prefix + 'foo'))
def testCallNonReimplementedMethodWithString(self): '''Calls createStr method from C++ with a Python string argument.''' obj = VirtualMethods() ok, string = obj.callCreateStr('foo') self.assertTrue(ok) self.assertEqual(string, Str('foo'))
def name(self): self.name_called = True return Str('ExtendedVirtualMethods')
def test__str__Method(self): '''Test if the binding correcly implements the Python __str__ method.''' s1 = 'original string' s2 = Str(s1) self.assertEqual(s1, s2) self.assertEqual(s1, str(s2))
def testObjectTypeSetObjectNameWithStrVariable(self): '''ObjectType.setObjectName with Str variable as argument.''' s = Str('object name') o = ObjectType() o.setObjectName(s) self.assertEqual(str(o.objectName()), str(s))
def testToIntWithOctal(self): octal = Str('52') val, ok = octal.toInt(8) self.assertEqual(type(val), int) self.assertEqual(type(ok), bool) self.assertEqual(val, int(str(octal), 8))
def testToIntWithDecimal(self): decimal = Str('37') val, ok = decimal.toInt() self.assertEqual(type(val), int) self.assertEqual(type(ok), bool) self.assertEqual(val, int(str(decimal)))
def testToIntError(self): self.assertEqual(Str('Z').toInt(), (0, False))
def testReverseOperator(self): s1 = Str("hello") n1 = 2 self.assertEqual(s1 + 2, "hello2") self.assertEqual(2 + s1, "2hello")
def testPassPythonTypeImplictlyConvertibleToAClassUsedAsReference(self): '''Test passing a Python class implicitly convertible to a wrapped class that is expected to be passed as reference.''' s1 = Str('This is %VAR!').arg('Athens') self.assertEqual(str(s1), 'This is Athens!')
def testPassExactClassAsReferenceToArgument(self): '''Test passing the expected class as an argument to a method that expects a reference.''' s1 = Str('This is %VAR!').arg(Str('Sparta')) self.assertEqual(str(s1), 'This is Sparta!')
def testSimpleCallWithString(self): '''Simple call to createStr method with a Python string argument.''' obj = VirtualMethods() ok, string = obj.createStr('foo') self.assertTrue(ok) self.assertEqual(string, Str('foo'))
def testToIntWithOctal(self): octal = Str("52") val, ok = octal.toInt(8) self.assertEqual(type(val), int) self.assertEqual(type(ok), bool) self.assertEqual(val, int(str(octal), 8))
def testObjectTypeSetObjectNameWithStrInstantiation(self): '''ObjectType.setObjectName with Str instantiation as argument.''' s = 'object name' o = ObjectType() o.setObjectName(Str(s)) self.assertEqual(str(o.objectName()), s)
def testToIntWithDecimal(self): decimal = Str("37") val, ok = decimal.toInt() self.assertEqual(type(val), int) self.assertEqual(type(ok), bool) self.assertEqual(val, int(str(decimal)))
def testStrCtorWithNumberArgument(self): '''Try to build a Str from 'sample' module with a Number argument from 'other' module.''' value = 123 num = Number(value) string = Str(num)