Source code for core.unittest_tools
import unittest
from openalea.core.observer import AbstractListener
class EventTracker(AbstractListener):
[docs]
def __init__(self, debug=False):
AbstractListener.__init__(self)
self.debug = debug
self._events = []
def notify(self, sender, event=None):
[docs] if self.debug:
print sender, event
self._events.append((sender, event))
@property
def events(self):
[docs] lst = self._events
self._events = []
return lst
class TestCase(unittest.TestCase):
[docs]
def check_events(self, events, names=None, values=None):
[docs] """
values:
dict {idx:[val, val2]}
"""
ev_names = [event[1][0] for event in events]
ev_args = [event[1][1] for event in events]
self.assertListEqual(ev_names, names)
if values:
for event_idx, event in values.items():
for arg_idx, arg in event.items():
self.assertEqual(ev_args[event_idx][arg_idx], arg)