예제 #1
0
 def test_addHook(self):
     simulator = Simulator(road=Mock(), dispatcher=Mock())
     hook = Mock()
     simulator.addHook(hook)
     self.assertIn(hook, simulator.hooks)
     simulator.removeHook(hook)
     self.assertNotIn(hook, simulator.hooks)
예제 #2
0
 def test_step(self):
     road = Mock()
     dispatcher = Mock()
     simulator = Simulator(road=road, dispatcher=dispatcher)
     # No hooks.
     simulator.step()
     self.assertEqual(simulator.steps, 1)
     dispatcher.dispatch.assert_called_once()
     road.step.assert_called_once()
     # Test hooks are run.
     hook = Mock()
     simulator.addHook(hook)
     simulator.step()
     self.assertEqual(simulator.steps, 2)
     hook.run.assert_called_once()
     # Tests hooks are removed correctly.
     hook.run.reset_mock()
     simulator.removeHook(hook)
     simulator.step()
     self.assertEqual(simulator.steps, 3)
     hook.run.assert_not_called()