Skip to content

chore(deps): update all dependencies #524

chore(deps): update all dependencies

chore(deps): update all dependencies #524

GitHub Actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common failed Oct 5, 2023 in 1s

test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common ❌

Tests failed

❌ test-results/test.xml

13 tests were completed in 1303s with 1 passed, 12 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 1✅ 12❌ 1303s

❌ pytest

tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput
  ❌ test_inputs_displayed_columns
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1292d0>
  ❌ test_inputs_pagination_list
	browser = None
  ❌ test_inputs_pagination
	browser = None
  ❌ test_inputs_sort_functionality
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12b190>
  ❌ test_inputs_filter_functionality_negative
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c128940>
  ❌ test_inputs_filter_functionality_positive
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129090>
  ✅ test_inputs_default_rows_in_table
  ❌ test_inputs_create_new_input_list_values
	browser = None
  ❌ test_inputs_input_type_list_values
	browser = None
  ❌ test_inputs_more_info
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a410>
  ❌ test_inputs_enable_disable
	self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a140>
  ❌ test_inputs_count
	browser = None
  ❌ test_inputs_title_and_description
	browser = None

Annotations

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_displayed_columns

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1292d0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1292d0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a767b80>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_displayed_columns(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies headers of input table"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        header_list = ["Name", "Account", "Interval", "Index", "Status", "Actions"]
>       self.assert_util(input_page.table.get_headers, header_list)

tests/ui/test_splunk_ta_example_addon_input_common.py:134: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1292d0>
left = <bound method Table.get_headers of <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a767cd0>>
right = ['Name', 'Account', 'Interval', 'Index', 'Status', 'Actions']
operator = '==', left_args = {}, right_args = {}
msg = "Condition Failed. \nLeft-value: []\nOperator: ==\nRight-value: ['Name', 'Account', 'Interval', 'Index', 'Status', 'Actions']"

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
            self.wait.until(_assert)
            condition_failed = False
        except (TimeoutException, ElementNotInteractableException) as e:
            logger.error("Exception raised: {}".format(str(e)))
            condition_failed = True
        if condition_failed:
            if not msg:
                msg = "Condition Failed. \nLeft-value: {}\nOperator: {}\nRight-value: {}".format(
                    args["left_value"], args["operator"], args["right_value"]
                )
>           assert operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            ), msg
E           AssertionError: Condition Failed. 
E             Left-value: []
E             Operator: ==
E             Right-value: ['Name', 'Account', 'Interval', 'Index', 'Status', 'Actions']
E           assert False
E            +  where False = <function UccTester.assert_util.<locals>.<lambda> at 0x7f0a0a715240>([], ['Name', 'Account', 'Interval', 'Index', 'Status', 'Actions'])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:573: AssertionError

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_pagination_list

Failed test found in:
  test-results/test.xml
Error:
  browser = None
Raw output
browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a23d600>

    def get_pagination_list(self):
        """
        Returns a generator list for the pagination text available in the add input dropdown
            :return: Returns Generator list of values
        """
>       self.pagination_dropdown.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:145: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a23d600>
key = 'pagination_dropdown'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a23d600>
key = 'pagination_dropdown'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a23d600>
by = 'css selector', select = 'button[data-test="select"]'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="6cc9ab4bee3040fcb1547e76b2760f0a")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a23da50>
message = 'by=css selector select=button[data-test="select"] Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select=button[data-test="select"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

During handling of the above exception, another exception occurred:

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1291e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a23fcd0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_pagination_list(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies pagination list"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       self.assert_util(
            input_page.pagination.get_pagination_list,
            ["10 Per Page", "25 Per Page", "50 Per Page"],
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:144: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1291e0>
left = <bound method Dropdown.get_pagination_list of <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a23d600>>
right = ['10 Per Page', '25 Per Page', '50 Per Page'], operator = '=='
left_args = {}, right_args = {}, msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a6b29e0>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
                args["left_value"] = args["left"](**args["left_args"])
            if callable(args["right"]):
                args["right_value"] = args["right"](**args["right_args"])
        except TimeoutException as e:
>           raise Exception("Timeout: {}".format(str(e)))
E           Exception: Timeout: Message: by=css selector select=button[data-test="select"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:555: Exception

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_pagination

Failed test found in:
  test-results/test.xml
Error:
  browser = None
Raw output
browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a2177c0>
value = '50 Per Page'

    def select_page_option(self, value):
        """
        Selects the page option that the user specifies in value
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
>       self.pagination_dropdown.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a2177c0>
key = 'pagination_dropdown'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a2177c0>
key = 'pagination_dropdown'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a2177c0>
by = 'css selector', select = 'button[data-test="select"]'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="6147480b2f2b40179e690478ba1f006b")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a214160>
message = 'by=css selector select=button[data-test="select"] Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select=button[data-test="select"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

During handling of the above exception, another exception occurred:

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1297b0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a765000>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
add_multiple_inputs = None

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_pagination(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_multiple_inputs
    ):
        """Verifies pagination functionality by creating 100 accounts"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        input_page.open()
>       self.assert_util(
            input_page.pagination.select_page_option,
            True,
            left_args={"value": "50 Per Page"},
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:158: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1297b0>
left = <bound method Dropdown.select_page_option of <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a2177c0>>
right = True, operator = '==', left_args = {'value': '50 Per Page'}
right_args = {}, msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a237760>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
                args["left_value"] = args["left"](**args["left_args"])
            if callable(args["right"]):
                args["right_value"] = args["right"](**args["right_args"])
        except TimeoutException as e:
>           raise Exception("Timeout: {}".format(str(e)))
E           Exception: Timeout: Message: by=css selector select=button[data-test="select"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:555: Exception

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_sort_functionality

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12b190>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12b190>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a87a530>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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': [], ...}
add_input_two = {'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_sort_functionality(
        self,
        ucc_smartx_selenium_helper,
        ucc_smartx_rest_helper,
        add_input_one,
        add_input_two,
    ):
        """Verifies sorting functionality for name column"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.pagination.select_page_option("50 Per Page")

tests/ui/test_splunk_ta_example_addon_input_common.py:179: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a763a90>
value = '50 Per Page'

    def select_page_option(self, value):
        """
        Selects the page option that the user specifies in value
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
>       self.pagination_dropdown.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a763a90>
key = 'pagination_dropdown'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a763a90>
key = 'pagination_dropdown'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a763a90>
by = 'css selector', select = 'button[data-test="select"]'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="bdeaec435e014544847d3320bed90e17")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a761960>
message = 'by=css selector select=button[data-test="select"] Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select=button[data-test="select"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_filter_functionality_negative

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c128940>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c128940>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a30b4c0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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': [], ...}
add_input_two = {'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_filter_functionality_negative(
        self,
        ucc_smartx_selenium_helper,
        ucc_smartx_rest_helper,
        add_input_one,
        add_input_two,
    ):
        """Verifies the filter functionality (Negative)"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.table.set_filter("hello")

tests/ui/test_splunk_ta_example_addon_input_common.py:201: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a3097b0>
filter_query = 'hello'

    def set_filter(self, filter_query):
        """
        Provide a string in table filter.
            :param filter_query: query of the filter
            :returns: resultant list of filtered row_names
        """
>       with self.wait_stale():

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:373: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <contextlib._GeneratorContextManager object at 0x7f0a0a30a350>

    def __enter__(self):
        # do not keep args and kwds alive unnecessarily
        # they are only needed for recreation, which is not possible anymore
        del self.args, self.kwds, self.func
        try:
>           return next(self.gen)

/usr/lib/python3.10/contextlib.py:135: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a3097b0>

    @contextmanager
    def wait_stale(self):
        rows = list(self._get_rows())
        col = copy.deepcopy(self.elements["col"])
        col = col._replace(select=col.select.format(column="name"))
>       col_element = self._get_element(col.by, col.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:384: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a3097b0>
by = 'css selector'
select = ' div[role="main"] [data-test="cell"][data-column="name"]'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="78255cfd1fcd4f7884ee2345b13cc4fd")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a30a380>
message = 'by=css selector select= div[role="main"] [data-test="cell"][data-column="name"] Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select= div[role="main"] [data-test="cell"][data-column="name"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_filter_functionality_positive

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129090>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129090>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a885b70>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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': [], ...}
add_input_two = {'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_filter_functionality_positive(
        self,
        ucc_smartx_selenium_helper,
        ucc_smartx_rest_helper,
        add_input_one,
        add_input_two,
    ):
        """Verifies the filter functionality (Positive)"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.table.set_filter("dummy")

tests/ui/test_splunk_ta_example_addon_input_common.py:221: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a885ff0>
filter_query = 'dummy'

    def set_filter(self, filter_query):
        """
        Provide a string in table filter.
            :param filter_query: query of the filter
            :returns: resultant list of filtered row_names
        """
>       with self.wait_stale():

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:373: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <contextlib._GeneratorContextManager object at 0x7f0a0a1ae830>

    def __enter__(self):
        # do not keep args and kwds alive unnecessarily
        # they are only needed for recreation, which is not possible anymore
        del self.args, self.kwds, self.func
        try:
>           return next(self.gen)

/usr/lib/python3.10/contextlib.py:135: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a885ff0>

    @contextmanager
    def wait_stale(self):
        rows = list(self._get_rows())
        col = copy.deepcopy(self.elements["col"])
        col = col._replace(select=col.select.format(column="name"))
>       col_element = self._get_element(col.by, col.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:384: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a885ff0>
by = 'css selector'
select = ' div[role="main"] [data-test="cell"][data-column="name"]'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="eedc16c53d2e404ca96d98fa911ff1aa")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a1aeec0>
message = 'by=css selector select= div[role="main"] [data-test="cell"][data-column="name"] Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select= div[role="main"] [data-test="cell"][data-column="name"] Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_create_new_input_list_values

Failed test found in:
  test-results/test.xml
Error:
  browser = None
Raw output
browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a206ce0>

    def get_inputs_list(self):
        """
        Returns a generator list for the options available in the add input dropdown
            :return: Returns Generator list of values
        """
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a206ce0>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a206ce0>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a206ce0>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="8bb90b575f0a49c5bbd253333fb90218")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a2fda20>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

During handling of the above exception, another exception occurred:

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129420>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a2053f0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_create_new_input_list_values(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies input list dropdown"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        create_new_input_list = ["Example Input One", "Example Input Two"]
>       self.assert_util(
            input_page.create_new_input.get_inputs_list, create_new_input_list
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:248: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129420>
left = <bound method Dropdown.get_inputs_list of <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a206ce0>>
right = ['Example Input One', 'Example Input Two'], operator = '=='
left_args = {}, right_args = {}, msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a714160>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
                args["left_value"] = args["left"](**args["left_args"])
            if callable(args["right"]):
                args["right_value"] = args["right"](**args["right_args"])
        except TimeoutException as e:
>           raise Exception("Timeout: {}".format(str(e)))
E           Exception: Timeout: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:555: Exception

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_input_type_list_values

Failed test found in:
  test-results/test.xml
Error:
  browser = None
Raw output
browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a3745b0>

    def get_input_type_list(self):
        """
        Returns a generator list for the input types available in the add input dropdown
            :return: Returns Generator list of values
        """
>       self.type_dropdown.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a3745b0>
key = 'type_dropdown'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a3745b0>
key = 'type_dropdown'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a3745b0>
by = 'css selector', select = '.dropdownInput'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="50cf376c1a4a452bb98fe59bc54daff6")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a376710>
message = 'by=css selector select=.dropdownInput Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select=.dropdownInput Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

During handling of the above exception, another exception occurred:

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1280d0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a279360>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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': [], ...}
add_input_two = {'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_input_type_list_values(
        self,
        ucc_smartx_selenium_helper,
        ucc_smartx_rest_helper,
        add_input_one,
        add_input_two,
    ):
        """Verifies input type filter list"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        type_filter_list = ["All", "Example Input One", "Example Input Two"]
>       self.assert_util(input_page.type_filter.get_input_type_list, type_filter_list)

tests/ui/test_splunk_ta_example_addon_input_common.py:265: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c1280d0>
left = <bound method Dropdown.get_input_type_list of <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7f0a0a3745b0>>
right = ['All', 'Example Input One', 'Example Input Two'], operator = '=='
left_args = {}, right_args = {}, msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a3a1630>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
                args["left_value"] = args["left"](**args["left_args"])
            if callable(args["right"]):
                args["right_value"] = args["right"](**args["right_args"])
        except TimeoutException as e:
>           raise Exception("Timeout: {}".format(str(e)))
E           Exception: Timeout: Message: by=css selector select=.dropdownInput Element not found in the page

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:555: Exception

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_more_info

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a410>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a410>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a309ff0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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_more_info(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
    ):
        """Verifies the expand functionality of the inputs table"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       self.assert_util(
            input_page.table.get_more_info,
            {
                "Name": "dummy_input_one",
                "Interval": "90",
                "Index": "default",
                "Status": "Enabled",
                "Example Account": "test_input",
                "Object": "test_object",
                "Object Fields": "test_field",
                "Order By": "LastModifiedDate",
                "Query Start Date": "2020-12-11T20:00:32.000z",
                "Limit": "1000",
            },
            left_args={"name": "dummy_input_one"},
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:281: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a410>
left = <bound method Table.get_more_info of <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a764d90>>
right = {'Example Account': 'test_input', 'Index': 'default', 'Interval': '90', 'Limit': '1000', ...}
operator = '==', left_args = {'name': 'dummy_input_one'}, right_args = {}
msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a37a050>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a764d90>
name = 'dummy_input_one', cancel = True

    def get_more_info(self, name, cancel=True):
        """
        Returns the text from the more info field within a tables row
            :param name: Str row name
            :param cancel: Bool Whether or not to click cancel after getting the info
            :return: Dict The information found when opening the info table on a row in the table
        """
>       _row = self._get_row(name)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:467: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a764d90>
name = 'dummy_input_one'

    def _get_row(self, name):
        """
        Get the specified row.
        :param name: row name
            :return: element Gets the row specified within the table, or raises a warning if not found
        """
        for each_row in self._get_rows():
            if self._get_column_value(each_row, "name") == name:
                return each_row
        else:
>           raise ValueError("{} row not found in table".format(name))
E           ValueError: dummy_input_one row not found in table

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:439: ValueError

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_enable_disable

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a140>
Raw output
self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a140>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a2161a0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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_enable_disable(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
    ):
        """Verifies the enable and disable functionality of the input"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       self.assert_util(
            input_page.table.input_status_toggle,
            True,
            left_args={"name": "dummy_input_one", "enable": False},
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:306: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c12a140>
left = <bound method InputTable.input_status_toggle of <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2167a0>>
right = True, operator = '=='
left_args = {'enable': False, 'name': 'dummy_input_one'}, right_args = {}
msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a3a31c0>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2167a0>
name = 'dummy_input_one', enable = False

    def input_status_toggle(self, name, enable):
        """
        This function sets the table row status as either enabled or disabled. If it is already enabled then it reuturns an exception
            :param name: Str The row that we want to enable st the status to as enabled or disabled
            :param enable: Bool Whether or not we want the table field to be set to enable or disable
            :return: Bool whether or not enabling or disabling the field was successful, If the field was already in the state we wanted it in, then it will return an exception
        """
>       _row = self._get_row(name)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/input_table.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2167a0>
name = 'dummy_input_one'

    def _get_row(self, name):
        """
        Get the specified row.
        :param name: row name
            :return: element Gets the row specified within the table, or raises a warning if not found
        """
        for each_row in self._get_rows():
            if self._get_column_value(each_row, "name") == name:
                return each_row
        else:
>           raise ValueError("{} row not found in table".format(name))
E           ValueError: dummy_input_one row not found in table

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:439: ValueError

Check failure on line 0 in test-results/test.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__firefox_test_splunk_ta_example_addon_input_common

pytest ► tests.ui.test_splunk_ta_example_addon_input_common.firefox_TestInput ► test_inputs_count

Failed test found in:
  test-results/test.xml
Error:
  browser = None
Raw output
browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
>               args["left_value"] = args["left"](**args["left_args"])

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:551: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2d1420>

    def get_count_title(self):
        """
        Get the count mentioned in the table title
            :return: Str The count of the table title
        """
>       return self.get_clear_text(self.count)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/table.py:113: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2d1420>
key = 'count'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2d1420>
key = 'count'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2d1420>
by = 'css selector', select = ' div[role="main"] .inputNumber'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="f5c82a0c07b94cc1a1d4bfe73b0a0060")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f0a0a2d1450>
message = 'by=css selector select= div[role="main"] .inputNumber Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=css selector select= div[role="main"] .inputNumber Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

During handling of the above exception, another exception occurred:

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129ab0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f0a0a23b580>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f0a0a887550>
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': [], ...}
add_input_two = {'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_count(
        self,
        ucc_smartx_selenium_helper,
        ucc_smartx_rest_helper,
        add_input_one,
        add_input_two,
    ):
        """Verifies count on table"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       self.assert_util(
            input_page.table.get_count_title,
            "{} Inputs".format(input_page.table.get_row_count()),
        )

tests/ui/test_splunk_ta_example_addon_input_common.py:329: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ui.test_splunk_ta_example_addon_input_common.TestInput object at 0x7f0a0c129ab0>
left = <bound method Table.get_count_title of <pytest_splunk_addon_ui_smartx.components.input_table.InputTable object at 0x7f0a0a2d1420>>
right = '0 Inputs', operator = '==', left_args = {}, right_args = {}, msg = None

    def assert_util(
        self, left, right, operator="==", left_args={}, right_args={}, msg=None
    ):
        """
        Try to check the condition for {WAIT_TIMEOUT} seconds.
        In UI Automation, it is not possible to expect things to work properly just milliseconds after an action.
        Even in manual testing, we try things after 4-5 seconds and 2-3 times.
        This utility method tries to achive the same assertion.
        To perform certain action multiple time, provide callable functoins with arguments.
    
        Params:
            left (object or callable): LHS of the operator.
            right (object or callable): RHS of the operator
            operator: Operator. Possible values: (==, !=, <, >, <=, >=, in, not in, is, is not)
            left_args: If left is callable, pass the parameters of the callable function.
            right_args: If right is callable, pass the parameters of the callable function.
            msg: Error message if the condition was not matched even after trying for {WAIT_TIMEOUT} seconds.
    
        """
        args = {
            "left": left,
            "right": right,
            "operator": operator,
            "left_args": left_args,
            "right_args": right_args,
            "left_value": left,
            "right_value": right,
        }
        operator_map = {
            "==": lambda left, right: left == right,
            "!=": lambda left, right: left != right,
            "<": lambda left, right: left < right,
            "<=": lambda left, right: left <= right,
            ">": lambda left, right: left > right,
            ">=": lambda left, right: left >= right,
            "in": lambda left, right: left in right,
            "not in": lambda left, right: left not in right,
            "is": lambda left, right: left is right,
            "is not": lambda left, right: left is not right,
        }
    
        def _assert(browser):
            try:
                if callable(args["left"]):
                    args["left_value"] = args["left"](**args["left_args"])
                if callable(args["right"]):
                    args["right_value"] = args["right"](**args["right_args"])
            except TimeoutException as e:
                raise Exception("Timeout: {}".format(str(e)))
            except ElementNotInteractableException as e:
                raise Exception("Element not interactable: {}".format(str(e)))
            return operator_map[args["operator"]](
                args["left_value"], args["right_value"]
            )
    
        try:
>           self.wait.until(_assert)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:563: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <[AttributeError("'NoneType' object has no attribute 'session_id'") raised in repr()] WebDriverWait object at 0x7f0a0a884490>
method = <function UccTester.assert_util.<locals>._assert at 0x7f0a0a236560>
message = ''

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
>               value = method(self._driver)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser = None

    def _assert(browser):
        try:
            if callable(args["left"]):
                args["left_value"] = args["left"](**args["left_args"])
            if callable(args["right"]):
                args["right_value"] = args["right"](**args["right_args"])
        except TimeoutException as e:
>           raise Exception("Timeout: {}".format(str(e)))
E           Exception: Timeout: Message: by=css selector select= div[role="main"] .inputNumber Element not found in the page

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:555: Exception