shep/tests/test_state.py

69 lines
1.4 KiB
Python

# standard imports
import unittest
# local imports
from schiz import State
from schiz.error import (
StateExists,
StateInvalid,
)
class TestState(unittest.TestCase):
def test_get(self):
states = State(3)
states.add('foo')
states.add('bar')
states.add('baz')
self.assertEqual(states.BAZ, 4)
def test_limit(self):
states = State(2)
states.add('foo')
states.add('bar')
with self.assertRaises(OverflowError):
states.add('baz')
def test_dup(self):
states = State(2)
states.add('foo')
with self.assertRaises(StateExists):
states.add('foo')
def test_alias(self):
states = State(2)
states.add('foo')
states.add('bar')
states.alias('baz', states.FOO | states.BAR)
self.assertEqual(states.BAZ, 3)
def test_alias_limit(self):
states = State(2)
states.add('foo')
states.add('bar')
states.alias('baz', states.FOO | states.BAR)
def test_alias_nopure(self):
states = State(3)
with self.assertRaises(ValueError):
states.alias('foo', 4)
def test_alias_cover(self):
states = State(3)
states.add('foo')
states.add('bar')
with self.assertRaises(StateInvalid):
states.alias('baz', 5)
if __name__ == '__main__':
unittest.main()