Unittest: метод события wxpython вызывает исключение, но AssertRaises его не обнаруживаетPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Unittest: метод события wxpython вызывает исключение, но AssertRaises его не обнаруживает

Сообщение Anonymous »

У меня есть диалоговое окно wxpython, которое вызывает исключение TypeError при нажатии кнопки «ОК». Я хотел бы проверить возникновение исключения с помощью unittest, но тест не работает должным образом. Вывод показывает, что возникло исключение. В любом случае unittest уведомляет, что тест не пройден:

Код: Выделить всё

"C:\Program Files (x86)\Python\python.exe" test.py
Traceback (most recent call last):
File "test.py", line 22, in on_ok
raise TypeError( 'TypeError raised' )
TypeError: TypeError raised
F
======================================================================
FAIL: test_should_raise (__main__.CDlgTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 34, in test_should_raise
self._dut.m_button_ok.GetEventHandler().ProcessEvent( event )
AssertionError: TypeError not raised

----------------------------------------------------------------------
Ran 1 test in 0.005s

FAILED (failures=1)
Вот сокращенный пример моего кода:

Код: Выделить всё

import unittest
import wx

class CDlgBase ( wx.Dialog ):
"""The UI"""
def __init__( self, parent ):
wx.Dialog.__init__ ( self, parent )
bSizerTest = wx.BoxSizer( wx.VERTICAL )
self.m_button_ok = wx.Button( self, wx.ID_ANY )
bSizerTest.Add( self.m_button_ok, 0 )
self.SetSizer( bSizerTest )
# Connect Events
self.m_button_ok.Bind( wx.EVT_BUTTON, self.on_ok )
def on_ok( self, event ):
event.Skip()

class CDlg( CDlgBase ) :
"""The dialog"""
def __init__(self, parent):
super( CDlg, self).__init__(parent)
def on_ok(self, event):
# The exception should be verified in the test `test_should_raise()`.
raise TypeError( 'TypeError raised' )

class CDlgTest( unittest.TestCase ) :
"""The test class"""
def setUp(self):
self._dut = CDlg(None)
def test_should_raise(self):
"""The test to verify raising the TypeError exception in the event
method `on_ok()`. this is the test method which works not as expected."""
event = wx.CommandEvent( wx.EVT_BUTTON.evtType[0] )
event.SetEventObject( self._dut.m_button_ok )
with self.assertRaises( TypeError ) :
"""Simulate an "OK" click. `on_ok()` will be executed
and raises the TypeError exception."""
self._dut.m_button_ok.GetEventHandler().ProcessEvent( event )

if __name__ == '__main__':
app = wx.App()
tests = [ unittest.TestLoader().loadTestsFromTestCase( CDlgTest) ]
unittest.TextTestRunner(verbosity=2, failfast=True).run(unittest.TestSuite(tests) )
Может кто-нибудь помочь мне понять, что я сделал не так?

Подробнее здесь: https://stackoverflow.com/questions/404 ... es-not-det
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python Unittest - противоположность Assertraises?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Правильное использование Assertraises в тестах на питон
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Wxpython вызывает функцию при изменении фокуса TextCtrl
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • API обнаружения объектов Tensorflow не обнаруживает объекты правильно/вообще не обнаруживает объекты
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • FragmentContainerView вызывает InflateException в Robolectric UnitTest
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»