Source code for openalea.core.unittest_tools


from __future__ import print_function
import unittest
from openalea.core.observer import AbstractListener


[docs] class EventTracker(AbstractListener): def __init__(self, debug=False): AbstractListener.__init__(self) self.debug = debug self._events = []
[docs] def notify(self, sender, event=None): if self.debug: print(sender, event) self._events.append((sender, event))
@property def events(self): lst = self._events self._events = [] return lst
[docs] class TestCase(unittest.TestCase):
[docs] def check_events(self, events, names=None, values=None): """ 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)