chore: release v5.38.0 (#1058) #322
GitHub Actions / test-report-ui-9.0.8-input
failed
Feb 6, 2024 in 1s
117 passed, 2 failed and 0 skipped
❌ test-results/junit.xml
119 tests were completed in 1435s with 117 passed, 2 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 117✅ | 2❌ | 1435s |
❌ pytest
test_input_page.chrome_TestInputPage
✅ test_inputs_displayed_columns
✅ test_inputs_pagination_list
✅ test_inputs_pagination
✅ test_inputs_sort_functionality
✅ test_inputs_filter_functionality_negative
✅ test_inputs_filter_functionality_positive
✅ test_inputs_default_rows_in_table
✅ test_inputs_create_new_input_list_values
✅ test_inputs_input_type_list_values
✅ test_inputs_more_info
✅ test_inputs_enable_disable
✅ test_inputs_count
✅ test_inputs_title_and_description
✅ test_example_input_one_required_field_name
✅ test_example_input_one_valid_length_name
✅ test_example_input_one_valid_input_name
✅ test_example_input_one_list_single_select_group_test
✅ test_example_input_one_select_value_single_select_group_test
✅ test_example_input_one_search_value_single_select_group_test
✅ test_example_input_one_default_value_multiple_select_test
✅ test_example_input_one_list_multiple_select_test
✅ test_example_input_one_select_value_multiple_select_test
✅ test_example_input_one_select_multiple_values_multiple_select_test
✅ test_example_input_one_deselect_multiple_select_test
✅ test_example_input_one_search_value_multiple_select_test
✅ test_example_input_one_default_value_example_checkbox
✅ test_example_input_one_unchecked_example_checkbox
✅ test_example_input_one_checked_example_checkbox
✅ test_example_input_one_default_value_example_radio
✅ test_example_input_one_select_value_example_radio
✅ test_example_input_one_required_field_interval
✅ test_example_input_one_valid_input_interval
✅ test_example_input_one_required_field_index
✅ test_example_input_one_default_value_index
✅ test_example_input_one_required_field_example_account
✅ test_example_input_one_required_field_object
✅ test_example_input_one_required_field_object_fields
✅ test_example_input_one_required_field_order_by
✅ test_example_input_one_default_value_order_by
✅ test_example_input_one_required_field_textarea
✅ test_example_input_one_fields_label_entity
✅ test_example_input_two_fields_label_entity
✅ test_example_input_one_help_text_entity
✅ test_example_input_one_valid_input_query_start_date
✅ test_example_input_one_default_value_limit
✅ test_example_input_one_help_link
✅ test_example_input_one_add_frontend_backend_validation
✅ test_example_input_one_edit_uneditable_field_name
✅ test_example_input_one_edit_frontend_backend_validation
✅ test_example_input_one_clone_default_values
✅ test_example_input_one_clone_frontend_backend_validation
✅ test_example_input_one_delete_row_frontend_validation
✅ test_example_input_one_add_close_entity
✅ test_example_input_one_edit_close_entity
✅ test_example_input_one_clone_close_entity
✅ test_example_input_one_delete_close_entity
✅ test_example_input_one_add_cancel_entity
✅ test_example_input_one_edit_cancel_entity
✅ test_example_input_one_clone_cancel_entity
✅ test_example_input_one_delete_cancel_entity
✅ test_example_input_one_add_duplicate_names
✅ test_example_input_one_clone_duplicate_names
✅ test_example_input_one_add_valid_title
✅ test_example_input_one_edit_valid_title
✅ test_example_input_one_clone_valid_title
✅ test_example_input_one_delete_valid_title
✅ test_example_input_one_delete_valid_prompt_message
✅ test_example_input_two_required_field_name
✅ test_example_input_two_valid_length_name
✅ test_example_input_two_valid_input_name
✅ test_example_input_two_required_field_interval
✅ test_example_input_two_valid_input_interval
✅ test_example_input_two_required_field_index
✅ test_example_input_two_default_value_index
✅ test_example_input_two_required_field_example_example_account
✅ test_example_input_two_required_field_example_multiple_select
✅ test_example_input_two_list_example_multiple_select
✅ test_example_input_two_select_select_value_example_multiple_select
✅ test_example_input_two_select_multiple_values_example_multiple_select
✅ test_example_input_two_help_text_entity
✅ test_example_input_two_checked_example_checkbox
✅ test_example_input_two_unchecked_example_checkbox
✅ test_example_input_two_required_field_example_radio
✅ test_example_input_two_select_value_example_radio
✅ test_example_input_two_valid_input_query_start_date
✅ test_example_input_two_add_frontend_backend_validation
✅ test_example_input_two_edit_uneditable_field_name
✅ test_example_input_two_edit_frontend_backend_validation
✅ test_example_input_two_clone_default_values
✅ test_example_input_two_clone_frontend_backend_validation
✅ test_example_input_two_delete_row_frontend_backend_validation
✅ test_example_input_two_add_close_entity
✅ test_example_input_two_edit_close_entity
✅ test_example_input_two_clone_close_entity
✅ test_example_input_two_delete_close_entity
✅ test_example_input_two_add_cancel_entity
✅ test_example_input_two_edit_cancel_entity
✅ test_example_input_two_clone_cancel_entity
✅ test_example_input_two_delete_cancel_entity
✅ test_example_input_two_add_duplicate_names
✅ test_example_input_two_clone_duplicate_names
✅ test_example_input_two_add_valid_title
✅ test_example_input_two_edit_valid_title
✅ test_example_input_two_clone_valid_title
✅ test_example_input_two_delete_valid_title
✅ test_example_input_two_delete_valid_prompt_message
✅ test_inputs_enable_all_title_message
✅ test_inputs_disable_all_title_message
✅ test_inputs_enable_all_close
✅ test_inputs_disable_all_close
✅ test_inputs_enable_all_deny
✅ test_inputs_disable_all_deny
✅ test_inputs_disable_enable_all
✅ test_inputs_disable_all_enable_all_input_one_input_two
✅ test_inputs_enable_all_some_already_enabled
✅ test_inputs_disable_all_some_already_disabled
✅ test_inputs_textarea_height
❌ test_inputs_textarea_big_input
self = <test_input_page.TestInputPage object at 0x7fc322163790>
❌ test_inputs_textarea_scroll
self = <test_input_page.TestInputPage object at 0x7fc32215d450>
Annotations
Check failure on line 0 in test-results/junit.xml
github-actions / test-report-ui-9.0.8-input
pytest ► test_input_page.chrome_TestInputPage ► test_inputs_textarea_big_input
Failed test found in:
test-results/junit.xml
Error:
self = <test_input_page.TestInputPage object at 0x7fc322163790>
Raw output
self = <test_input_page.TestInputPage object at 0x7fc322163790>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7fc32202cb10>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7fc322328750>
add_input_one = {'entry': [{'acl': {'app': 'Splunk_TA_UCCExample', 'can_change_perms': True, 'can_list': True, 'can_share_app': True, ...nf-inputs/_reload', 'create': '/servicesNS/nobody/Splunk_TA_UCCExample/configs/conf-inputs/_new'}, 'messages': [], ...}
@pytest.mark.execute_enterprise_cloud_true
@pytest.mark.forwarder
@pytest.mark.input
def test_inputs_textarea_big_input(
self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
):
"""
Verifies that textarea can handle big inputs
"""
> input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
tests/ui/test_input_page.py:2442:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/ui/pages/input_page.py:251: in __init__
super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page)
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: in __init__
self.open()
tests/ui/pages/input_page.py:304: in open
self.browser.get(f"{self.splunk_web_url}/en-US/app/{C.ADDON_NAME}/inputs")
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:333: in get
self.execute(Command.GET, {'url': url})
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fc32202c9d0>
response = {'status': 404, 'value': '{"value":{"error":"invalid session id","message":"invalid session id","stacktrace":"#0 0x559...\\n#11 0x55921458369f \\u003Cunknown>\\n#12 0x55921429c8da \\u003Cunknown>\\n#13 0x7fe89e429d90 \\u003Cunknown>\\n"}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: InvalidSessionIdException
Check failure on line 0 in test-results/junit.xml
github-actions / test-report-ui-9.0.8-input
pytest ► test_input_page.chrome_TestInputPage ► test_inputs_textarea_scroll
Failed test found in:
test-results/junit.xml
Error:
self = <test_input_page.TestInputPage object at 0x7fc32215d450>
Raw output
self = <test_input_page.TestInputPage object at 0x7fc32215d450>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7fc32202cb10>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7fc322328750>
add_input_one = {'entry': [{'acl': {'app': 'Splunk_TA_UCCExample', 'can_change_perms': True, 'can_list': True, 'can_share_app': True, ...nf-inputs/_reload', 'create': '/servicesNS/nobody/Splunk_TA_UCCExample/configs/conf-inputs/_new'}, 'messages': [], ...}
@pytest.mark.execute_enterprise_cloud_true
@pytest.mark.forwarder
@pytest.mark.input
def test_inputs_textarea_scroll(
self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
):
"""
Verifies that textarea height values
"""
> input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
tests/ui/test_input_page.py:2462:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/ui/pages/input_page.py:251: in __init__
super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page)
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: in __init__
self.open()
tests/ui/pages/input_page.py:304: in open
self.browser.get(f"{self.splunk_web_url}/en-US/app/{C.ADDON_NAME}/inputs")
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:333: in get
self.execute(Command.GET, {'url': url})
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fc32202c9d0>
response = {'status': 404, 'value': '{"value":{"error":"invalid session id","message":"invalid session id","stacktrace":"#0 0x559...\\n#11 0x55921458369f \\u003Cunknown>\\n#12 0x55921429c8da \\u003Cunknown>\\n#13 0x7fe89e429d90 \\u003Cunknown>\\n"}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: InvalidSessionIdException
Loading