def test_restful_perform_action(self, mock_send_request):
        try:
            model = Restful()
            self.assertRaises(tutum.TutumApiError, model._perform_action, "action")

            Restful.endpoint = "fake"
            model._detail_uri = "fake/uuid"
            mock_send_request.side_effect = [{"key": "value"}, None]
            self.assertTrue(model._perform_action("action", {"key": "value"}))
            self.assertEqual("value", model.key)
            mock_send_request.assert_called_with("POST", "fake/uuid/action", data={"key": "value"})

            self.assertFalse(model._perform_action("action", {"key": "value"}))

        finally:
            if hasattr(Restful, "endpoint"):
                delattr(Restful, "endpoint")
    def test_restful_perform_action(self, mock_send_request):
        try:
            model = Restful()
            self.assertRaises(tutum.TutumApiError, model._perform_action, 'action')

            Restful.endpoint = 'fake'
            model._detail_uri = 'fake/uuid'
            mock_send_request.side_effect = [{'key': 'value'}, None]
            self.assertTrue(model._perform_action('action', {'key': 'value'}))
            self.assertEqual('value', model.key)
            mock_send_request.assert_called_with('POST', 'fake/uuid/action', data={'key': 'value'})

            self.assertFalse(model._perform_action('action', {'key': 'value'}))

        finally:
            if hasattr(Restful, 'endpoint'):
                delattr(Restful, 'endpoint')
    def test_restful_perform_action(self, mock_send_request):
        try:
            model = Restful()
            self.assertRaises(tutum.TutumApiError, model._perform_action,
                              'action')

            Restful.endpoint = 'fake'
            model._detail_uri = 'fake/uuid'
            mock_send_request.side_effect = [{'key': 'value'}, None]
            self.assertTrue(model._perform_action('action', {'key': 'value'}))
            self.assertEqual('value', model.key)
            mock_send_request.assert_called_with('POST',
                                                 'fake/uuid/action',
                                                 data={'key': 'value'})

            self.assertFalse(model._perform_action('action', {'key': 'value'}))

        finally:
            if hasattr(Restful, 'endpoint'):
                delattr(Restful, 'endpoint')