gaphas/tests/test_state.py
2020-10-10 17:14:53 +02:00

37 lines
917 B
Python

import sys
from gaphas.state import _reverse, observed, reversible_pair
class SList:
def __init__(self):
self.list = []
def add(self, node, before=None):
if before:
self.list.insert(self.list.index(before), node)
else:
self.list.append(node)
add = observed(add)
@observed
def remove(self, node):
self.list.remove(self.list.index(node))
def test_adding_pair():
"""Test adding reversible pair."""
reversible_pair(
SList.add,
SList.remove,
bind1={"before": lambda self, node: self.list[self.list.index(node) + 1]},
)
if sys.version_info.major >= 3: # Modern Python
assert SList.add in _reverse
assert SList.remove in _reverse
else: # Legacy Python
assert SList.add.__func__ in _reverse # type: ignore[attr-defined]
assert SList.remove.__func__ in _reverse