def test_raise_sos_catches_ioexception_and_logs_and_returns_false(self):
        mock_getdepconf = self.set_up_patch('hypernode.nodeconfig.common.get_config')
        mock_getdepconf.side_effect = IOError()

        ret = raise_sos("Henk!")

        self.logger.return_value.critical.assert_called_once()
        self.assertFalse(ret)
    def test_raise_sos_returns_false_if_status_code_not_200(self):
        get_deployment_config = self.set_up_patch('hypernode.nodeconfig.common.get_config')
        get_deployment_config.return_value = {'sos_url': 'my_url'}

        mock_post = self.set_up_patch('requests.post')
        mock_post.return_value.status_code = 403

        ret = raise_sos("Help!")

        self.assertFalse(ret)
    def test_raise_sos_posts_to_callback_url(self):
        get_deployment_config = self.set_up_patch('hypernode.nodeconfig.common.get_config')
        get_deployment_config.return_value = {'sos_url': 'my_url'}

        mock_post = self.set_up_patch('requests.post')
        data = {'message': "Help!"}

        ret = raise_sos("Help!")

        assert get_deployment_config.called
        mock_post.assert_called_once_with('my_url', data=data)