def test_api_post_fail(self, mock_login, mock_post, mock_headers):
        """
        Test ._api_post() raises an exception
        """
        mock_login.return_value = self.account_id
        mock_headers.return_value = {}

        mock_response = Mock(spec=requests.Response)
        mock_response.status_code = 500
        mock_response.text = "Server error"
        mock_response.ok = False

        mock_post.return_value = mock_response

        url = 'https://logentries.com/app/{account_id}/rest/tag'.format(account_id=self.account_id)

        alert = SpecialAlertBase(self.username, self.password)

        with self.assertRaises(ServerException):
            alert._api_post(
                url=url,
                data={'k': 'v'}
            )

        mock_post.assert_called_once_with(
            alert.session,
            url=url,
            headers={},
            data={'k': 'v'}
        )
    def test_api_post(self, mock_login, mock_post, mock_headers):
        """
        Test ._api_post()
        """
        mock_login.return_value = self.account_id
        mock_headers.return_value = {}

        url = 'https://logentries.com/app/{account_id}/rest/tag'.format(account_id=self.account_id)

        alert = SpecialAlertBase(self.username, self.password)

        alert._api_post(
            url=url,
            data={'k': 'v'}
        )

        mock_post.return_value.json.assert_called_once_with()

        mock_post.assert_called_once_with(
            alert.session,
            url=url,
            headers={},
            data={'k': 'v'}
        )