diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2010-03-03 17:09:57 -0300 |
---|---|---|
committer | Lauro Neto <lauro.neto@openbossa.org> | 2010-03-04 17:58:48 -0300 |
commit | 8ea7551ac00a49d72ccf0d6a8fcf1e064d59e496 (patch) | |
tree | 7766bec1428b7f312429193d4713429ae22deffe | |
parent | 361322dea68da3f8193979496ac4e4a4e725ee9f (diff) |
Initial QtTest bindings
-rw-r--r-- | PySide/CMakeLists.txt | 1 | ||||
-rw-r--r-- | PySide/QtTest/CMakeLists.txt | 49 | ||||
-rw-r--r-- | PySide/QtTest/typesystem_test.xml | 40 | ||||
-rw-r--r-- | PySide/global.h | 4 | ||||
-rw-r--r-- | tests/qttest/click_test.py | 28 |
5 files changed, 122 insertions, 0 deletions
diff --git a/PySide/CMakeLists.txt b/PySide/CMakeLists.txt index 416a107e7..414cee256 100644 --- a/PySide/CMakeLists.txt +++ b/PySide/CMakeLists.txt @@ -35,3 +35,4 @@ HAS_QT_MODULE(QT_QTGUI_FOUND QtGui) HAS_QT_MODULE(QT_QTNETWORK_FOUND QtNetwork) HAS_QT_MODULE(QT_QTWEBKIT_FOUND QtWebKit) HAS_QT_MODULE(QT_QTSVG_FOUND QtSvg) +HAS_QT_MODULE(QT_QTTEST_FOUND QtTest) diff --git a/PySide/QtTest/CMakeLists.txt b/PySide/QtTest/CMakeLists.txt new file mode 100644 index 000000000..df1e63029 --- /dev/null +++ b/PySide/QtTest/CMakeLists.txt @@ -0,0 +1,49 @@ +project(QtTest) + +if(Q_WS_X11) + set(MODULE_NAME test_x11) + set(SPECIFIC_OS_FILES + ) +elseif(Q_WS_MAC) + set(MODULE_NAME test_mac) + set(SPECIFIC_OS_FILES + ) +else() + message(FATAL_ERROR "OS not supported") +endif(Q_WS_X11) + +set(QtTest_SRC +${CMAKE_CURRENT_BINARY_DIR}/PySide/QtTest/qtest_wrapper.cpp +${CMAKE_CURRENT_BINARY_DIR}/PySide/QtTest/qttest_module_wrapper.cpp +${SPECIFIC_OS_FILES} +) + +execute_generator(test QtTest_SRC "${CMAKE_CURRENT_BINARY_DIR}:${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}") + +include_directories(${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtTest/ + ${QT_INCLUDE_DIR} + ${QT_QTCORE_INCLUDE_DIR} + ${QT_QTGUI_INCLUDE_DIR} + ${QT_QTTEST_INCLUDE_DIR} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${PYTHON_INCLUDE_PATH} + ${QtCore_BINARY_DIR}/PySide/QtCore/ + ${QtGui_BINARY_DIR}/PySide/QtGui/ + ) + +add_library(QtTest MODULE ${QtTest_SRC}) +set_property(TARGET QtTest PROPERTY PREFIX "") +target_link_libraries(QtTest + pyside + ${PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${QT_QTTEST_LIBRARY} + ${QT_QTGUI_LIBRARY} + ) +add_dependencies(QtTest QtGui) + +# install +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/QtTest.so + DESTINATION ${SITE_PACKAGE}/PySide) diff --git a/PySide/QtTest/typesystem_test.xml b/PySide/QtTest/typesystem_test.xml new file mode 100644 index 000000000..8e47ee13e --- /dev/null +++ b/PySide/QtTest/typesystem_test.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<typesystem package="PySide.QtTest"> + <load-typesystem name="typesystem_core.xml" generate="no"/> + <load-typesystem name="typesystem_gui.xml.in" generate="no"/> <!-- FIXME --> + + <rejection class="QTest" function-name="qCompare<char>"/> + <rejection class="QTest" function-name="qCompare<char*>"/> + <rejection class="QTest" function-name="qCompare<double>"/> + <rejection class="QTest" function-name="qCompare<float>"/> + <rejection class="QTest" function-name="qCompare"/> + <rejection class="QTest" function-name="qVerify"/> + <rejection class="QTest" function-name="qSleep"/> + <rejection class="QTest" function-name="toHexRepresentation"/> + <rejection class="QTest" function-name="qWait"/> + <rejection class="QTest" function-name="qFail"/> + <rejection class="QTest" function-name="qExec"/> + <rejection class="QTest" function-name="qData"/> + <rejection class="QTest" function-name="qWarn"/> + <rejection class="QTest" function-name="toString"/> + <rejection class="QTest" function-name="compare_helper"/> + + <namespace-type name="QTest"> + <extra-includes> + <include file-name="QtTest" location="global"/> + </extra-includes> + <!--<modify-function signature="qCompare<char>(char">--> + </namespace-type> + + <rejection class="QTouchEventSequence"/> + + <!--<enum-type name="QTest::AttributeIndex"/> + <enum-type name="QTest::KeyAction"/> + <enum-type name="QTest::LogElementType"/> + <enum-type name="QTest::MouseAction"/> + <enum-type name="QTest::SkipMode"/> + <enum-type name="QTest::TestFailMode"/>--> + + <rejection class="QSignalSpy"/> + <rejection class="QTestEventList"/> +</typesystem> diff --git a/PySide/global.h b/PySide/global.h index bd4f29cad..6b9927f96 100644 --- a/PySide/global.h +++ b/PySide/global.h @@ -37,6 +37,10 @@ # include <QtWebKit/QtWebKit> #endif +#ifndef QT_NO_TEST +# include <QtTest/QtTest> +#endif + // Phonon #include<phonon/abstractaudiooutput.h> #include<phonon/abstractmediastream.h> diff --git a/tests/qttest/click_test.py b/tests/qttest/click_test.py new file mode 100644 index 000000000..e295cee68 --- /dev/null +++ b/tests/qttest/click_test.py @@ -0,0 +1,28 @@ + +'''QtTest mouse click functionalities''' + +import unittest + +from PySide.QtCore import Qt, QObject +from PySide.QtGui import QPushButton, QLineEdit +from PySide.QtTest import QTest + +from helper import UsesQApplication + +class MouseClickTest(UsesQApplication): + + def testBasic(self): + '''QTest.mouseClick with QCheckBox''' + button = QPushButton() + button.setCheckable(True) + button.setChecked(False) + + QTest.mouseClick(button, Qt.LeftButton) + self.assert_(button.isChecked()) + + QTest.mouseClick(button, Qt.LeftButton) + self.assertFalse(button.isChecked()) + + +if __name__ == '__main__': + unittest.main() |