From cefb9e9b58a2ff6d755d0c7949819e6bd62f83f4 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Thu, 10 Feb 2011 18:34:15 -0200 Subject: Fix string used in tp_name on inner types. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewer: Lauro Moura Renato Araújo --- generator/cppgenerator.cpp | 5 +++-- tests/samplebinding/enum_test.py | 2 +- tests/samplebinding/namespace_test.py | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index bc623e63b..8e3b391b7 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -2514,7 +2514,7 @@ void CppGenerator::writeClassDefinition(QTextStream& s, const AbstractMetaClass* s << "static SbkObjectType " << className + "_Type" << " = { { {" << endl; s << INDENT << "PyObject_HEAD_INIT(&SbkObjectType_Type)" << endl; s << INDENT << "/*ob_size*/ 0," << endl; - s << INDENT << "/*tp_name*/ \"" << metaClass->fullName() << "\"," << endl; + s << INDENT << "/*tp_name*/ \"" << getClassTargetFullName(metaClass) << "\"," << endl; s << INDENT << "/*tp_basicsize*/ sizeof(SbkObject)," << endl; s << INDENT << "/*tp_itemsize*/ 0," << endl; s << INDENT << "/*tp_dealloc*/ " << tp_dealloc << ',' << endl; @@ -3028,7 +3028,8 @@ void CppGenerator::writeEnumInitialization(QTextStream& s, const AbstractMetaEnu s << cppEnum->name() << endl; if (!cppEnum->isAnonymous()) { - s << INDENT << "PyTypeObject* " << cpythonName << " = Shiboken::Enum::newType(\"" << cppEnum->name() << "\");" << endl; + + s << INDENT << "PyTypeObject* " << cpythonName << " = Shiboken::Enum::newType(\"" << getClassTargetFullName(cppEnum) << "\");" << endl; if (cppEnum->typeEntry()->flags()) s << INDENT << cpythonName << "->tp_as_number = &" << cpythonName << "_as_number;" << endl; diff --git a/tests/samplebinding/enum_test.py b/tests/samplebinding/enum_test.py index 22e6b917c..4d67fcea6 100644 --- a/tests/samplebinding/enum_test.py +++ b/tests/samplebinding/enum_test.py @@ -106,7 +106,7 @@ class MyEvent(Event): class OutOfBoundsTest(unittest.TestCase): def testValue(self): e = MyEvent() - self.assertEqual(repr(e.eventType()), '') + self.assertEqual(repr(e.eventType()), '') class EnumOverloadTest(unittest.TestCase): '''Test case for overloads involving enums''' diff --git a/tests/samplebinding/namespace_test.py b/tests/samplebinding/namespace_test.py index 29633f38e..20637cae7 100644 --- a/tests/samplebinding/namespace_test.py +++ b/tests/samplebinding/namespace_test.py @@ -40,5 +40,10 @@ class TestClassesUnderNamespace(unittest.TestCase): res = SampleNamespace.ImInsideANamespace(2, 2) self.assertEquals(res, 4) + def testTpNames(self): + self.assertEquals(str(SampleNamespace.SomeClass), "") + self.assertEquals(str(SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough), "") + self.assertEquals(str(SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum), "") + if __name__ == '__main__': unittest.main() -- cgit v1.2.3