Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/gaphas/tests/test_state.py
blob: ee779ec433f0aa34ab9598058aa901f6d392887f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)