Source code for khoros.utils.tests.test_error_handling
# -*- coding: utf-8 -*-
"""
:Module: khoros.utils.tests.test_error_handling
:Synopsis: This module is used by pytest to verify that error handling works properly
:Created By: Jeff Shurtliff
:Last Modified: Jeff Shurtliff
:Modified Date: 03 Oct 2022
"""
import pytest
from . import resources
from ...errors import handlers, exceptions, translations
[docs]
def test_eprint():
"""This function tests printing an error message to the stderr output.
.. versionadded:: 5.1.2
"""
handlers.eprint('This is an error message')
[docs]
def test_get_html_error():
"""This function tests the ability to parse an HTML error to get an error message.
.. versionadded:: 5.1.2
"""
# TODO: Add a true error message from the API
html_error = "<html><body><h1>404 Not Found</h1><b>Error description</b><u></u></body></html>"
v1_error = 'The Community API v1 call failed with the following error:\n\t404 Not Found'
assert handlers.get_error_from_html(html_error) == '404 Not Found'
assert handlers.get_error_from_html(html_error, v1=True) == v1_error
[docs]
def test_verify_core_object_present():
"""This function tests the ability to verify that a Khoros core object is present.
.. versionadded:: 5.1.2
"""
with pytest.raises(exceptions.MissingRequiredDataError):
khoros_object = None
handlers.verify_core_object_present(khoros_object)
[docs]
def test_translate_error():
"""This function tests the ability to translate obscure messages.
.. versionadded:: 5.1.2
"""
error_msg = 'page.post.error.attachment_bad_extension'
translated_error_excerpt = 'The attachment does not have an extension permitted'
assert translated_error_excerpt in translations.translate_error(error_msg)
[docs]
def test_translation_check():
"""This function tests the ability to check if error translation is enabled.
.. versionadded:: 5.1.2
"""
# Instantiate the core object
khoros_object = resources.get_core_object()
# Call the function and verify that it is a Boolean response
setting = translations.translation_enabled(khoros_object=khoros_object)
assert isinstance(setting, bool)
[docs]
def test_parse_translation_error():
"""This function tests the ability to parse an error message to remove extraneous escape characters.
.. versionadded:: 5.1.2
"""
error_msg_with_escape_char = 'This is an error message\n'
error_msg = 'This is an error message'
parsed_msg = translations.parse_message(error_msg_with_escape_char)
assert parsed_msg == error_msg