Files
Phoenix/unittests/test_lib_pubsub_notify.py
Robin Dunn 86357cc0a1 Merge branch 'remove-six'
# Conflicts:
#	unittests/test_string.py
#	unittests/test_wxdatetime.py
2016-06-30 20:14:58 -07:00

70 lines
1.9 KiB
Python

"""
:copyright: Copyright 2006-2009 by Oliver Schoenborn, all rights reserved.
:license: BSD, see LICENSE.txt for details.
"""
import unittest
from unittests import wtc
from difflib import ndiff, unified_diff, context_diff
#---------------------------------------------------------------------------
class lib_pubsub_Notify(wtc.PubsubTestCase):
def testNotifyByPrint(self):
from wx.lib.pubsub.utils.notification import useNotifyByWriteFile
def captureStdout():
from six import StringIO
capture = StringIO()
useNotifyByWriteFile( fileObj = capture )
return capture
capture = captureStdout()
def listener1(arg1):
pass
self.pub.subscribe(listener1, 'baz')
self.pub.sendMessage('baz', arg1=123)
self.pub.unsubscribe(listener1, 'baz')
def doa():
def listener2():
pass
self.pub.subscribe(listener2, 'bar')
doa()
self.pub.getDefaultTopicMgr().delTopic('baz')
expect = '''\
PUBSUB: New topic "baz" created
PUBSUB: Subscribed listener "listener1" to topic "baz"
PUBSUB: Start sending message of topic "baz"
PUBSUB: Sending message of topic "baz" to listener listener1
PUBSUB: Done sending message of topic "baz"
PUBSUB: Unsubscribed listener "listener1" from topic "baz"
PUBSUB: New topic "bar" created
PUBSUB: Subscribed listener "listener2" to topic "bar"
PUBSUB: Listener "listener2" of Topic "bar" has died
PUBSUB: Topic "baz" destroyed
'''.strip()
captured = capture.getvalue().strip()
# strip as other wise one has \n, at least on windows
assert captured == expect, \
'\n'.join( unified_diff(expect.splitlines(), captured.splitlines(), n=0) )
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()