diff options
Diffstat (limited to 'tests/coretests.py')
-rw-r--r-- | tests/coretests.py | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/tests/coretests.py b/tests/coretests.py index 4f564c8..b9e04e5 100644 --- a/tests/coretests.py +++ b/tests/coretests.py @@ -28,7 +28,7 @@ and event filters. Those are in their separate test module import unittest -import copy +from copy import deepcopy import logging from sugar.tutorius.actions import * from sugar.tutorius.addon import * @@ -130,9 +130,9 @@ class StateTest(unittest.TestCase): Tests the fact that the event filters are correctly installed on setup and uninstalled on teardown. """ - event_filter = addon.create('TriggerEventFilter', "second_state") + event_filter = addon.create('TriggerEventFilter') - state = State("event_test", event_filter_list=[event_filter]) + state = State("event_test", event_filter_list=[(event_filter, "second_state")]) state.set_tutorial(SimpleTutorial()) assert event_filter.toggle_on_callback == False, "Wrong init of event_filter" @@ -198,22 +198,21 @@ class StateTest(unittest.TestCase): def test_add_event_filter(self): state = State("INIT") - event1 = addon.create('TriggerEventFilter', "s") - event2 = addon.create('TriggerEventFilter', "t") - event3 = addon.create('TriggerEventFilter', "r") + event1 = addon.create('TriggerEventFilter') + event2 = addon.create('TriggerEventFilter') # Insert the event filters - assert state.add_event_filter(event1), "Could not add event filter 1" - assert state.add_event_filter(event2), "Could not add event filter 2" - assert state.add_event_filter(event3), "Could not add event filter 3" + assert state.add_event_filter(event1, "s"), "Could not add event filter 1" # Make sure we cannot insert an event twice - assert state.add_event_filter(event1) == False, "Could add twice the event filter" + assert state.add_event_filter(event1, "s") == False, "Could add twice the event filter" + assert state.add_event_filter(event2, "t") == False, "Could add event filter 2" # Get the list of event filters - event_filters = state.get_event_filter_list() + event_filters = map(lambda x: x[0],state.get_event_filter_list()) - assert event1 in event_filters and event2 in event_filters and event3 in event_filters, \ + #even if we added only the event 1, they are equivalent + assert event1 in event_filters and event2 in event_filters, \ "The event filters were not all added inside the state" # Clear the list @@ -243,19 +242,19 @@ class StateTest(unittest.TestCase): act1 = addon.create("BubbleMessage", message="Hi", position=[132,450]) act2 = addon.create("BubbleMessage", message="Hi", position=[132,450]) - event1 = addon.create("GtkWidgetEventFilter", "nextState", "0.0.0.1.1.2.3.1", "clicked") + event1 = addon.create("GtkWidgetEventFilter", "0.0.0.1.1.2.3.1", "clicked") act3 = addon.create("DialogMessage", message="Hello again.", position=[200, 400]) # Build the first state st1.add_action(act1) st1.add_action(act3) - st1.add_event_filter(event1) + st1.add_event_filter(event1, "nextState") # Build the second state st2.add_action(act2) st2.add_action(act3) - st2.add_event_filter(event1) + st2.add_event_filter(event1, "nextState") # Make sure that they are identical for now assert st1 == st2, "States should be considered as identical" @@ -276,22 +275,21 @@ class StateTest(unittest.TestCase): assert not(st1 == st2), "Different state names should give different states" st2.name = "Identical" - st3 = copy.deepcopy(st1) + st3 = deepcopy(st1) st3.add_action(addon.create("BubbleMessage", "Hi!", [128,264])) assert not (st1 == st3), "States having a different number of actions should be different" - st4 = copy.deepcopy(st1) - st4.add_event_filter(addon.create("GtkWidgetEventFilter", "next_state", "0.0.1.1.2.2.3", "clicked")) + st4 = deepcopy(st1) + st4.add_event_filter(addon.create("GtkWidgetEventFilter", "0.0.1.1.2.2.3", "clicked"), "next_state") assert not (st1 == st4), "States having a different number of events should be different" - st5 = copy.deepcopy(st1) + st5 = deepcopy(st1) st5._event_filters = [] - st5.add_event_filter(addon.create("GtkWidgetEventFilter", "other_state", "0.1.2.3.4.1.2", "pressed")) + st5.add_event_filter(addon.create("GtkWidgetEventFilter", "0.1.2.3.4.1.2", "pressed"), "other_state") - #import rpdb2; rpdb2.start_embedded_debugger('pass') assert not (st1 == st5), "States having the same number of event filters" \ + " but those being different should be different" @@ -305,10 +303,10 @@ class FSMTest(unittest.TestCase): act_init = TrueWhileActiveAction() act_second = TrueWhileActiveAction() - event_init = FakeEventFilter("SECOND") + event_init = FakeEventFilter() content = { - "INIT": State("INIT", action_list=[act_init],event_filter_list=[event_init]), + "INIT": State("INIT", action_list=[act_init],event_filter_list=[(event_init,"SECOND")]), "SECOND": State("SECOND", action_list=[act_second]) } @@ -399,9 +397,9 @@ class FSMTest(unittest.TestCase): This test removes a state from the FSM. It also verifies that the links from other states going into the removed state are gone. """ - st1 = State("INIT", event_filter_list=[addon.create('TriggerEventFilter', "second")]) - st2 = State("second", event_filter_list=[addon.create('TriggerEventFilter', "third")]) - st3 = State("third", event_filter_list=[addon.create('TriggerEventFilter', "second")]) + st1 = State("INIT", event_filter_list=[(addon.create('TriggerEventFilter'), "second")]) + st2 = State("second", event_filter_list=[(addon.create('TriggerEventFilter'), "third")]) + st3 = State("third", event_filter_list=[(addon.create('TriggerEventFilter'), "second")]) fsm = FiniteStateMachine("StateRemovalTest") @@ -524,7 +522,7 @@ class FSMTest(unittest.TestCase): fsm.add_action(act1) - fsm2 = copy.deepcopy(fsm) + fsm2 = deepcopy(fsm) assert fsm == fsm2 @@ -549,7 +547,7 @@ class FSMTest(unittest.TestCase): fsm.add_state(st1) fsm.add_state(st2) - fsm4 = copy.deepcopy(fsm) + fsm4 = deepcopy(fsm) assert fsm == fsm4 @@ -582,13 +580,13 @@ class FSMExplorationTests(unittest.TestCase): """ st1 = State("INIT") st1.add_action(CountAction()) - st1.add_event_filter(addon.create('TriggerEventFilter', "Second")) - st1.add_event_filter(addon.create('TriggerEventFilter', "Third")) + st1.add_event_filter(addon.create('TriggerEventFilter'), "Second") + st1.add_event_filter(addon.create('TriggerEventFilter'), "Third") st2 = State("Second") st2.add_action(TrueWhileActiveAction()) - st2.add_event_filter(addon.create('TriggerEventFilter', "Third")) - st2.add_event_filter(addon.create('TriggerEventFilter', "Fourth")) + st2.add_event_filter(addon.create('TriggerEventFilter'), "Third") + st2.add_event_filter(addon.create('TriggerEventFilter'), "Fourth") st3 = State("Third") st3.add_action(CountAction()) |