Форум сайта python.su
Пример модульного теста, работающий в PyQt 4.6.0 и младших версиях:
# coding: utf-8
import unittest
from PyQt4 import QtGui
class TestForPyQt46x(unittest.TestCase):
def setUp(self):
app = QtGui.QApplication([])
def testSimple(self):
self.assertFalse(QtGui.QApplication.instance() is None)
if __name__ == '__main__':
unittest.main()
Офлайн
По моему, все правильно:
test_460 = """
>>> from PyQt4 import QtGui
>>> QtGui.QApplication.instance()
>>> def main():
... app = QtGui.QApplication([])
... assert app is QtGui.QApplication.instance()
>>> main()
>>> QtGui.QApplication.instance() is None
False
"""
test_461 = """
>>> from PyQt4 import QtGui
>>> QtGui.QApplication.instance()
>>> def main():
... app = QtGui.QApplication([])
... assert app is QtGui.QApplication.instance()
>>> main()
>>> QtGui.QApplication.instance() is None
True
"""
import unittest
from PyQt4 import QtGui
class TestForPyQt46x(unittest.TestCase):
def setUp(self):
self.app = QtGui.QApplication([])
def testSimple(self):
self.assertFalse(QtGui.QApplication.instance() is None)
if __name__ == '__main__':
unittest.main()
Офлайн
poltergeistК сожалению я не нашел явного упоминания о таких радикальных изменениях в PyQt.
Лучше иметь убиваемый QtGui.QApplication как в 4.6.1, чем не убиваемый в 4.6.0.
Офлайн
Лично мне новая логика QtGui.QApplication понятна и я знаю где можно словить проблемы с нею (в моих доктестах выше как раз тот пример).
А вот потоки по интересней будут, сочувствую и желаю успеха:) Напишите сюда о найденных багах, если не трудно…
Офлайн