'Tracing keeps track of forwarding done by the publisher.'

def test_trace(self):

    publisher = LogPublisher()
    event = dict(log_trace=[])
    o1 = (lambda e: None)
    def o2(e):
        self.assertIs(e, event)
        self.assertEqual(e['log_trace'], [(publisher, o1), (publisher, o2)])
    def o3(e):
        self.assertIs(e, event)
        self.assertEqual(e['log_trace'], [(publisher, o1), (publisher, o2), (publisher, o3)])
    publisher.addObserver(o1)
    publisher.addObserver(o2)
    publisher.addObserver(o3)
    publisher(event)
