Пример #1
0
    def test_one_publisher_two_subscribers(self):
        import pyback

        self.called1 = 0
        self.called2 = 0

        def callback1(evt):
            self.called1 += 1
        def callback2(evt):
            self.called2 += 1

        pyback.subscribe('testchannel', callback1)
        pyback.subscribe('testchannel', callback2)

        pyback.publish('testchannel')

        self.assertEqual(self.called1, 1)
        self.assertEqual(self.called2, 1)

        pyback.unsubscribe('testchannel', callback2)

        pyback.publish('testchannel')

        self.assertEqual(self.called1, 2)
        self.assertEqual(self.called2, 1)
Пример #2
0
def example_4():
    print """EXAMPLE 4
In this example, we register a class method as
a handler for evt. Not too difficult, really.
OUTPUT:"""

    class Dummy(object):
        def __init__(self, channel_key):
            # the object subscribes itself to designated
            # channel on __init__. This could also be done
            # from outside the object scope desired.
            pyback.subscribe(channel_key, self.class_evt_handler)

        def class_evt_handler(self, evt):
            print "__channel:", evt.get_channel()
            print "evt name:", evt.name

    dum = Dummy('example_4_channel')
    # publish an event
    pyback.publish('example_4_channel', name='instantiated_handler_evt')
    # unregister from outside the object scope
    pyback.unsubscribe('example_4_channel', dum.class_evt_handler)
    # publish again, this one will be ignored, since handler
    # was unsubscribed
    pyback.publish('example_4_channel', name='instantiated_handler_evt2')
Пример #3
0
    def test_one_publisher_two_subscribers(self):
        import pyback

        self.called1 = 0
        self.called2 = 0

        def callback1(evt):
            self.called1 += 1

        def callback2(evt):
            self.called2 += 1

        pyback.subscribe('testchannel', callback1)
        pyback.subscribe('testchannel', callback2)

        pyback.publish('testchannel')

        self.assertEqual(self.called1, 1)
        self.assertEqual(self.called2, 1)

        pyback.unsubscribe('testchannel', callback2)

        pyback.publish('testchannel')

        self.assertEqual(self.called1, 2)
        self.assertEqual(self.called2, 1)
Пример #4
0
    def test_two_publishers_one_subscriber(self):
        import pyback

        self.called = 0
        def callback(evt):
            self.called += 1

        pyback.subscribe('testchannel', callback)
        pyback.publish('testchannel')
        self.assertEqual(self.called, 1)
        pyback.publish('testchannel')
        self.assertEqual(self.called, 2)
        pyback.unsubscribe('testchannel', callback)
Пример #5
0
    def test_object_callback(self):
        import pyback
        class Dummy(object):
            def __init__(self):
                self.called = 0

            def object_callback(self, evt):
                self.called += 1

        dum = Dummy()
        pyback.subscribe('testchannel', dum.object_callback)
        pyback.publish('testchannel', thing='blah')
        self.assertEqual(dum.called, 1)
        pyback.unsubscribe('testchannel', dum.object_callback)
Пример #6
0
    def test_two_publishers_one_subscriber(self):
        import pyback

        self.called = 0

        def callback(evt):
            self.called += 1

        pyback.subscribe('testchannel', callback)
        pyback.publish('testchannel')
        self.assertEqual(self.called, 1)
        pyback.publish('testchannel')
        self.assertEqual(self.called, 2)
        pyback.unsubscribe('testchannel', callback)
Пример #7
0
    def test_object_callback(self):
        import pyback

        class Dummy(object):
            def __init__(self):
                self.called = 0

            def object_callback(self, evt):
                self.called += 1

        dum = Dummy()
        pyback.subscribe('testchannel', dum.object_callback)
        pyback.publish('testchannel', thing='blah')
        self.assertEqual(dum.called, 1)
        pyback.unsubscribe('testchannel', dum.object_callback)
Пример #8
0
    def test_static_sub_pub(self):
        import pyback
        self.called = 0
        def callback(evt):
            self.called += 1
            self.assertIsInstance(evt, pyback.Evt)
            self.assertEqual(evt.testval, 42)

        pyback.subscribe('testchannel', callback)
        pyback.publish('testchannel', testval=42)
        self.assertEqual(self.called, 1)

        # remove it
        pyback.unsubscribe('testchannel', callback)
        pyback.publish('testchannel', testval=42)
        self.assertEqual(self.called, 1)  # NOT 2
Пример #9
0
    def test_static_sub_pub(self):
        import pyback
        self.called = 0

        def callback(evt):
            self.called += 1
            self.assertIsInstance(evt, pyback.Evt)
            self.assertEqual(evt.testval, 42)

        pyback.subscribe('testchannel', callback)
        pyback.publish('testchannel', testval=42)
        self.assertEqual(self.called, 1)

        # remove it
        pyback.unsubscribe('testchannel', callback)
        pyback.publish('testchannel', testval=42)
        self.assertEqual(self.called, 1)  # NOT 2
Пример #10
0
def example_1():
	print """EXAMPLE 1
1) Register a new handler.
2) Publish to channel.
3) Unsubscribe handler from channel.
OUTPUT:"""
	def evt_handler(evt):
		# do something with evt here.
		# For sake of argument (haha, get it?), we will
		# print a custom passed kwarg called "name".
		print "__channel:", evt.get_channel()
		print "name:", evt.name

	pyback.subscribe('example_1_channel', evt_handler)

	# now this could be launched from anywhere that
	# imports the pyback module:
	pyback.publish('example_1_channel', name="example_1_event")
	pyback.unsubscribe('example_1_channel', evt_handler)

	print "-" * 50
Пример #11
0
def example_1():
    print """EXAMPLE 1
1) Register a new handler.
2) Publish to channel.
3) Unsubscribe handler from channel.
OUTPUT:"""

    def evt_handler(evt):
        # do something with evt here.
        # For sake of argument (haha, get it?), we will
        # print a custom passed kwarg called "name".
        print "__channel:", evt.get_channel()
        print "name:", evt.name

    pyback.subscribe('example_1_channel', evt_handler)

    # now this could be launched from anywhere that
    # imports the pyback module:
    pyback.publish('example_1_channel', name="example_1_event")
    pyback.unsubscribe('example_1_channel', evt_handler)

    print "-" * 50
Пример #12
0
def example_4():
	print """EXAMPLE 4
In this example, we register a class method as
a handler for evt. Not too difficult, really.
OUTPUT:"""
	class Dummy(object):
		def __init__(self, channel_key):
			# the object subscribes itself to designated
			# channel on __init__. This could also be done
			# from outside the object scope desired.
			pyback.subscribe(channel_key, self.class_evt_handler)

		def class_evt_handler(self, evt):
			print "__channel:", evt.get_channel()
			print "evt name:", evt.name

	dum = Dummy('example_4_channel')
	# publish an event
	pyback.publish('example_4_channel', name='instantiated_handler_evt')
	# unregister from outside the object scope
	pyback.unsubscribe('example_4_channel', dum.class_evt_handler)
	# publish again, this one will be ignored, since handler
	# was unsubscribed
	pyback.publish('example_4_channel', name='instantiated_handler_evt2')