[Anygui-checkins] CVS: anygui/test test_rules.py,1.5,1.6
Brought to you by:
mlh
From: Magnus L. H. <ml...@us...> - 2002-04-26 21:06:44
|
Update of /cvsroot/anygui/anygui/test In directory usw-pr-cvs1:/tmp/cvs-serv16722/test Modified Files: test_rules.py Log Message: Index: test_rules.py =================================================================== RCS file: /cvsroot/anygui/anygui/test/test_rules.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** test_rules.py 19 Apr 2002 15:23:35 -0000 1.5 --- test_rules.py 26 Apr 2002 21:06:37 -0000 1.6 *************** *** 1,17 **** from unittest import TestCase, main from anygui.Rules import RuleEngine, IllegalState class RectangleTestCase(TestCase): ! def setUp(self): self.eng = RuleEngine() self.eng.define('position = x, y') self.eng.define('size = width, height') self.eng.define('geometry = x, y, width, height') ! ! def testMisc(self): # FIXME: Rewrite as more specific test cases... ! ! state = {} state['x'] = 10 ! state['y'] = 20 state['width'] = 9999 state['height'] = 9999 --- 1,19 ---- + # Temporary: + import warnings + warnings.filterwarnings('ignore') + from unittest import TestCase, main from anygui.Rules import RuleEngine, IllegalState class RectangleTestCase(TestCase): ! def __init__(self, *args, **kwds): ! TestCase.__init__(self, *args, **kwds) self.eng = RuleEngine() self.eng.define('position = x, y') self.eng.define('size = width, height') self.eng.define('geometry = x, y, width, height') ! state = self.state_init = {} state['x'] = 10 ! state['y'] = 10 state['width'] = 9999 state['height'] = 9999 *************** *** 20,59 **** state['geometry'] = 10, 10, 9999, 9999 ! self.assertEqual(self.eng.sync(state, ['y']), []) ! self.assertEqual(state['position'], (10, 20)) ! self.assertEqual(state['geometry'], (10, 20, 9999, 9999)) ! state['position'] = 42, 42 self.assertEqual(self.eng.sync(state, ['position']), []) ! self.assertEqual(state['x'], 42) ! self.assertEqual(state['y'], 42) ! self.assertEqual(state['geometry'], (42, 42, 9999, 9999)) ! state['geometry'] = 1, 2, 3, 4 self.assertEqual(self.eng.sync(state, ['geometry']), []) ! self.assertEqual(state['x'], 1) ! self.assertEqual(state['y'], 2) ! self.assertEqual(state['width'], 3) ! self.assertEqual(state['height'], 4) ! self.assertEqual(state['position'], (1, 2)) ! self.assertEqual(state['size'], (3, 4)) ! ! self.eng.sync(state, []) # No exception should be raised ! ! state['x'] = 2 # Inconsistent with position and geometry self.assertRaises(IllegalState, self.eng.sync, state, []) - self.assertEqual(self.eng.sync(state, ['x']), []) ! # @@@ Not implemented/working yet: state['x'] = 42 state['position'] = 20, 30 self.assertRaises(IllegalState, self.eng.sync, state, ['x', 'position']) state['x'] = 42 state['position'] = 42, 30 ! self.assertEqual(self.eng.sync(state, ['x', 'position']), []) if __name__ == '__main__': main() --- 22,116 ---- state['geometry'] = 10, 10, 9999, 9999 ! def setUp(self): ! self.state = self.state_init.copy() ! ! def checkState(self, x, y, width, height): ! state = self.state ! self.assertEqual(state['x'], x) ! self.assertEqual(state['y'], y) ! self.assertEqual(state['position'][0], x) ! self.assertEqual(state['position'][1], y) ! self.assertEqual(state['width'], width) ! self.assertEqual(state['height'], height) ! self.assertEqual(state['size'][0], width) ! self.assertEqual(state['size'][1], height) ! self.assertEqual(state['geometry'][0], x) ! self.assertEqual(state['geometry'][1], y) ! self.assertEqual(state['geometry'][2], width) ! self.assertEqual(state['geometry'][3], height) ! ! def testX(self): ! "Setting x and syncing with ['x']" ! state = self.state ! state['x'] = 20 ! self.assertEqual(self.eng.sync(state, ['x']), []) ! self.checkState(20, 10, 9999, 9999) ! def testY(self): ! "Setting y and syncing with ['y']" ! state = self.state ! state['y'] = 20 ! self.assertEqual(self.eng.sync(state, ['y']), []) ! self.checkState(10, 20, 9999, 9999) ! def testPosition(self): ! "Setting position and syncing with ['position']" ! state = self.state ! state['position'] = 20, 20 self.assertEqual(self.eng.sync(state, ['position']), []) ! self.checkState(20, 20, 9999, 9999) ! def testGeometry(self): ! "Setting geometry and syncing with ['geometry']" ! state = self.state ! state['geometry'] = 42, 42, 42, 42 self.assertEqual(self.eng.sync(state, ['geometry']), []) + self.checkState(42, 42, 42, 42) ! def testLegalEmptySync(self): ! "Syncing a consistent state with []" ! state = self.state ! self.eng.sync(state, []) ! self.checkState(10, 10, 9999, 9999) ! ! def genericIllegalEmptySyncTest(self, name, value): ! state = self.state.copy() ! state[name] = value self.assertRaises(IllegalState, self.eng.sync, state, []) ! def testIllegalEmptySync(self): ! "Syncing an inconsistent state with []" + # Generalize... + self.genericIllegalEmptySyncTest('x', 0) + self.genericIllegalEmptySyncTest('y', 0) + self.genericIllegalEmptySyncTest('width', 0) + self.genericIllegalEmptySyncTest('height', 0) + self.genericIllegalEmptySyncTest('position', (0, 10)) + self.genericIllegalEmptySyncTest('position', (10, 0)) + self.genericIllegalEmptySyncTest('size', (0, 10)) + self.genericIllegalEmptySyncTest('size', (10, 0)) + for i in xrange(4): + v = [10, 10, 9999, 9999] + v[i] = 0 + self.genericIllegalEmptySyncTest('geometry', v) + + def testInconsistentSyncList(self): + "Syncing on two inconsistent, related values" + state = self.state + + # Generalize... state['x'] = 42 state['position'] = 20, 30 self.assertRaises(IllegalState, self.eng.sync, state, ['x', 'position']) + def testConsistentSyncList(self): + "Syncing on two consistent, related values" + state = self.state + + # Generalize... state['x'] = 42 state['position'] = 42, 30 ! self.assertEqual(self.eng.sync(state, ['x', 'position']), []) if __name__ == '__main__': main() |