def test_act_pops_an_action_off_of_the_action_queue_and_if_it_is_not_possible_returns_immediately(self):  # noqa
		action = Action()
		action.is_possible = MagicMock(return_value=False)
		action.execute = MagicMock()
		u = DummyUnit()
		u.add_action(action)
		u.act(1.0)
		action.is_possible.assert_called_once_with(u, 1.0)
		action.execute.assert_not_called()
		self.assertEqual(len(u.action_queue), 0)
	def test_act_pops_an_action_off_of_the_action_queue_and_executes_it_and_if_it_is_not_complete_puts_it_back_to_the_front_of_the_action_queue(self):  # noqa
		action = Action()
		action.is_possible = MagicMock(return_value=True)
		action.execute = MagicMock()
		action.is_complete = MagicMock(return_value=False)
		action.finish = MagicMock()
		u = DummyUnit()
		u.add_action(action)
		u.act(1.0)
		action.is_possible.assert_called_once_with(u, 1.0)
		action.execute.assert_called_once_with(u, 1.0)
		action.is_complete.assert_called_once_with(u, 1.0)
		action.finish.assert_not_called()
		self.assertEqual(len(u.action_queue), 1)
	def test_execute_calls__execute_and_adds_dt_to_elapsed_time(self, mock__execute):  # noqa
		action = Action()
		action.execute('dummy_unit', 1.5)
		mock__execute.assert_called_once_with('dummy_unit', 1.5)
		self.assertEqual(action.elapsed_time, 1.5)