diff options
-rw-r--r-- | gaphas/state.py | 4 | ||||
-rw-r--r-- | gaphas/tests/test_state.py | 24 |
2 files changed, 24 insertions, 4 deletions
diff --git a/gaphas/state.py b/gaphas/state.py index b9e3ac5..a1c61cd 100644 --- a/gaphas/state.py +++ b/gaphas/state.py @@ -242,10 +242,6 @@ def revert_handler(event): >>> reversible_pair(SList.add, SList.remove, \ bind1={'before': lambda self, node: self.l[self.l.index(node)+1] }) - >>> _reverse[SList.add.im_func] # doctest: +ELLIPSIS - (<function remove at 0x...>, (['self', 'node'], None, None, None), {}) - >>> _reverse[SList.remove.im_func] # doctest: +ELLIPSIS - (<function add at 0x...>, (['self', 'node', 'before'], None, None, (None,)), {'before': <function <lambda> at ...>}) >>> def handler(event): ... print 'handle', event >>> subscribers.add(handler) diff --git a/gaphas/tests/test_state.py b/gaphas/tests/test_state.py new file mode 100644 index 0000000..ee779ec --- /dev/null +++ b/gaphas/tests/test_state.py @@ -0,0 +1,24 @@ +import unittest + +from gaphas.state import reversible_pair, observed, _reverse + +class SList(object): + def __init__(self): + self.l = list() + def add(self, node, before=None): + if before: self.l.insert(self.l.index(before), node) + else: self.l.append(node) + add = observed(add) + @observed + def remove(self, node): + self.l.remove(self.l.index(node)) + +class StateTestCase(unittest.TestCase): + def test_adding_pair(self): + """Test adding reversible pair + """ + reversible_pair(SList.add, SList.remove, \ + bind1={'before': lambda self, node: self.l[self.l.index(node)+1] }) + + self.assertTrue(SList.add.im_func in _reverse) + self.assertTrue(SList.remove.im_func in _reverse) |