Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/tutorialtests.py
diff options
context:
space:
mode:
authorerick <erick@sugar-dev-erick.(none)>2009-10-30 22:21:54 (GMT)
committer erick <erick@sugar-dev-erick.(none)>2009-10-30 22:21:54 (GMT)
commita023cce7ec486c85234bc25ad1740191c920d454 (patch)
treed6ec477c638771e8545bde5d7338c9d5073a15db /tests/tutorialtests.py
parent37e2ab5dd552be9aec49ccf774c90da8b962ea9f (diff)
Tutorial: Changed Tutorial.update_* to update properties instead of replacing the object, Moved validation of state name to a decorator to avoid dupliation
Diffstat (limited to 'tests/tutorialtests.py')
-rw-r--r--tests/tutorialtests.py68
1 files changed, 55 insertions, 13 deletions
diff --git a/tests/tutorialtests.py b/tests/tutorialtests.py
index c1f591f..cd0ef6f 100644
--- a/tests/tutorialtests.py
+++ b/tests/tutorialtests.py
@@ -60,11 +60,21 @@ from sugar.tutorius.tutorial import *
# the tests will break each time we change something in the
# implementation
+from sugar.tutorius.properties import *
+
+class MockAction(TPropContainer):
+ i = TIntProperty(0, 0, 9)
+
+class MockEvent(TPropContainer):
+ i = TIntProperty(0, 0, 9)
+
class StateTest(unittest.TestCase):
"""Test basic functionalities of states used by tutorials"""
def setUp(self):
self.state = State("State1")
+ self.action = MockAction()
+ self.event = MockEvent()
def tearDown(self):
pass
@@ -86,11 +96,16 @@ class StateTest(unittest.TestCase):
assert action_name1 != action_name2
def test_update_dummy_action(self):
- action_name = self.state.add_action("action1")
- self.state.update_action(action_name, "action2")
+ action_name = self.state.add_action(self.action)
+ assert self.action.i == 0
+
+ prop = self.action.get_properties_dict_copy()
+ prop["i"] = 2
+ self.state.update_action(action_name, prop)
+
assert len(self.state.get_action_dict()) == 1
assert self.state.get_action_dict().has_key(action_name)
- assert self.state.get_action_dict()[action_name] == "action2"
+ assert self.state.get_action_dict()[action_name].get_properties_dict_copy() == prop
def test_delete_dummy_action(self):
action_name = self.state.add_action("action1")
@@ -123,11 +138,22 @@ class StateTest(unittest.TestCase):
assert transition_name1 != transition_name2
def test_update_dummy_transition(self):
- transition_name = self.state.add_transition("transition1")
- self.state.update_transition(transition_name, "transition2")
+ transition_name = self.state.add_transition((self.event, Tutorial.END))
+ assert self.event.i == 0
+
+ prop = self.event.get_properties_dict_copy()
+ prop["i"] = 2
+ self.state.update_transition(transition_name, prop)
+
assert len(self.state.get_transition_dict()) == 1
assert self.state.get_transition_dict().has_key(transition_name)
- assert self.state.get_transition_dict()[transition_name] == "transition2"
+ assert self.state.get_transition_dict()[transition_name][0].get_properties_dict_copy() == prop
+ assert self.state.get_transition_dict()[transition_name][1] == Tutorial.END
+
+ # Now update only the transition
+ self.state.update_transition(transition_name, new_state=Tutorial.INIT)
+ assert self.state.get_transition_dict()[transition_name][0].get_properties_dict_copy() == prop
+ assert self.state.get_transition_dict()[transition_name][1] == Tutorial.INIT
def test_delete_dummy_transition(self):
transition_name = self.state.add_transition("transition1")
@@ -184,6 +210,8 @@ class TutorialTest(unittest.TestCase):
def setUp(self):
self.tutorial = Tutorial("Tutorial Test")
+ self.action = MockAction()
+ self.event = MockEvent()
def tearDown(self):
pass
@@ -247,7 +275,7 @@ class TutorialTest(unittest.TestCase):
def test_delete_linked_state(self):
state_name1 = self.tutorial.add_state()
self.tutorial.update_transition(Tutorial.INITIAL_TRANSITION_NAME, \
- (Tutorial.AUTOMATIC_TRANSITION_EVENT, state_name1))
+ None, state_name1)
transition_name1 = self.tutorial.add_transition(state_name1,("event1", Tutorial.END))
self.tutorial.delete_state(state_name1)
assert len(self.tutorial.get_state_dict()) == 2
@@ -277,11 +305,15 @@ class TutorialTest(unittest.TestCase):
def test_update_dummy_action(self):
state_name = self.tutorial.add_state()
- action_name = self.tutorial.add_action(state_name,"action1")
- self.tutorial.update_action(action_name, "action2")
+ action_name = self.tutorial.add_action(state_name,self.action)
+
+ prop = self.action.get_properties_dict_copy()
+ prop["i"] = 2
+ self.tutorial.update_action(action_name, prop)
+
assert len(self.tutorial.get_action_dict()) == 1
assert self.tutorial.get_action_dict().has_key(action_name)
- assert self.tutorial.get_action_dict()[action_name] == "action2"
+ assert self.tutorial.get_action_dict()[action_name].get_properties_dict_copy() == prop
def test_delete_dummy_action(self):
state_name = self.tutorial.add_state()
@@ -310,11 +342,21 @@ class TutorialTest(unittest.TestCase):
def test_update_dummy_transition(self):
state_name = self.tutorial.add_state()
- transition_name = self.tutorial.add_transition(state_name,"transition1")
- self.tutorial.update_transition(transition_name, "transition2")
+ transition_name = self.tutorial.add_transition(state_name,(self.event, Tutorial.END))
+
+ prop = self.event.get_properties_dict_copy()
+ prop["i"] = 2
+ self.tutorial.update_transition(transition_name, prop)
+
assert len(self.tutorial.get_transition_dict()) == 2
assert self.tutorial.get_transition_dict().has_key(transition_name)
- assert self.tutorial.get_transition_dict()[transition_name] == "transition2"
+ assert self.tutorial.get_transition_dict()[transition_name][0].get_properties_dict_copy() == prop
+ assert self.tutorial.get_transition_dict()[transition_name][1] == Tutorial.END
+
+ # Now update only the transition
+ self.tutorial.update_transition(transition_name, new_state=Tutorial.INIT)
+ assert self.tutorial.get_transition_dict()[transition_name][0].get_properties_dict_copy() == prop
+ assert self.tutorial.get_transition_dict()[transition_name][1] == Tutorial.INIT
def test_delete_dummy_transition(self):
state_name = self.tutorial.add_state()