GUI acceptance tests using environment deployed from packages.

Build: #2874 failed

Job: Atm workflows status failed

Stages & jobs

  1. Qnthack - copy quarantine

  2. Acceptance Test

  3. Qnthack - rerun

    Final

user sees that lane task and workflow statuses are preparing pending and active in turn during execution of uploaded workflowwithsleeponelane workflow[1oz 1op openfaas]: Test case result

The below summarizes the result of the test " user sees that lane task and workflow statuses are preparing pending and active in turn during execution of uploaded workflowwithsleeponelane workflow[1oz 1op openfaas]" in build 2,874 of Onedata Products - gui acceptance pkg - Atm workflows status.
Description
user sees that lane task and workflow statuses are preparing pending and active in turn during execution of uploaded workflowwithsleeponelane workflow[1oz 1op openfaas]
Test class
gui.scenarios.test_atm_workflows_status
Method
test_user_sees_that_lane_task_and_workflow_statuses_are_preparing_pending_and_active_in_turn_during_execution_of_uploaded_workflowwithsleeponelane_workflow[1oz_1op_openfaas]
Duration
3 mins
Status
Failed (New Failure)

Error Log

AssertionError: Actual "Task in ParallelBox in WorkflowLane in WorkflowVisualiser in WorkflowExecutionPage in Oneprovider page" status: "Failed" does not match expected: "Finished"
selenium = {'browser': <selenium.webdriver.chrome.webdriver.WebDriver (session="1b4a7df307ec94006c2bd8f7c273c8f4")>}
browser_id = 'browser'
op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'>, lane = 'Lane1'
task = '20s sleep', ordinal = '1st', status1 = 'Pending', status2 = 'Finished'

    @wt(parsers.parse('user of {browser_id} sees that status of task "{task}" in '
                      '{ordinal} parallel box in "{lane}" lane is one of '
                      '"{status1}" or "{status2}"'))
    def assert_status_of_task_is_one_of_two(selenium, browser_id, op_container,
                                            lane, task, ordinal, status1, status2):
        click = 'clicks on'
        close = 'closes'
        click_on_task_in_lane(selenium, browser_id, op_container, lane,
                              task, ordinal, click)
        try:
>           assert_task_status_in_parallel_box(selenium, browser_id,
                                               op_container, ordinal, lane,
                                               task, status1)

tests/gui/meta_steps/oneprovider/automation/workflow_results.py:153: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

selenium = {'browser': <selenium.webdriver.chrome.webdriver.WebDriver (session="1b4a7df307ec94006c2bd8f7c273c8f4")>}
browser_id = 'browser'
op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'>, ordinal = '1st'
lane = 'Lane1', task = '20s sleep', expected_status = 'Pending'

>   ???

<decorator-gen-1359>:2: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

fun = <function assert_task_status_in_parallel_box at 0x7fd454803160>
args = ({'browser': <selenium.webdriver.chrome.webdriver.WebDriver (session="1b4a7df307ec94006c2bd8f7c273c8f4")>}, 'browser', <class 'tests.gui.utils.oneprovider.OPLoggedIn'>, '1st', 'Lane1', '20s sleep', ...)
kwargs = {}, now = 1722115239.6401644, limit = 1722115269.6401644
i = 1722115269.8997283

    @decorator
    def wrapper(fun, *args, **kwargs):
        now = time()
        limit, i = (now + timeout, now) if timeout else (attempts, 0)
    
        while i < limit:
            try:
                result = fun(*args, **kwargs)
            except exceptions:
                sleep(interval)
                i = time() if timeout else i+1
                continue
            else:
                return result
>       return fun(*args, **kwargs)

tests/utils/utils.py:95: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

selenium = {'browser': <selenium.webdriver.chrome.webdriver.WebDriver (session="1b4a7df307ec94006c2bd8f7c273c8f4")>}
browser_id = 'browser'
op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'>, ordinal = '1st'
lane = 'Lane1'
task = <tests.gui.utils.oneprovider.automation.Task object at 0x7fd454345400>
expected_status = 'Pending'

    @repeat_failed(timeout=2*WAIT_BACKEND)
    def assert_task_status_in_parallel_box(selenium, browser_id, op_container,
                                           ordinal, lane, task, expected_status):
        driver = selenium[browser_id]
        box = get_parallel_box(selenium, browser_id, op_container, ordinal, lane)
        task, task_id = search_for_task_in_parallel_box(driver, box, task)
        try:
            actual_status = driver.find_element_by_css_selector(
                f'#{task_id} .status-detail .detail-value')
        except NoSuchElementException:
            actual_status = task.status
    
>       assert_status(task, actual_status, expected_status)

tests/gui/steps/oneprovider/automation/automation_statuses.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = <tests.gui.utils.oneprovider.automation.Task object at 0x7fd454345400>
actual_status = 'Failed', expected_status = 'Pending'

    def assert_status(name, actual_status, expected_status):
        err_msg = (f'Actual "{name}" status: "{actual_status}" does not '
                   f'match expected: "{expected_status}"')
>       assert actual_status.lower() == expected_status.lower(), err_msg
E       AssertionError: Actual "Task in ParallelBox in WorkflowLane in WorkflowVisualiser in WorkflowExecutionPage in Oneprovider page" status: "Failed" does not match expected: "Pending"

tests/gui/steps/oneprovider/automation/automation_statuses.py:120: AssertionError

During handling of the above exception, another exception occurred:

request = <FixtureRequest for <Function 'test_user_sees_that_lane_task_and_workflow_statuses_are_preparing_pending_and_active_in_turn_during_execution_of_uploaded_workflowwithsleeponelane_workflow[1oz_1op_openfaas]'>>

    @pytest.mark.usefixtures(*function_args)
    def scenario_wrapper(request):
>       _execute_scenario(feature, scenario, request, encoding)

/usr/local/lib/python3.8/dist-packages/pytest_bdd/scenario.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.8/dist-packages/pytest_bdd/scenario.py:189: in _execute_scenario
    _execute_step_function(request, scenario, step, step_func)
/usr/local/lib/python3.8/dist-packages/pytest_bdd/scenario.py:130: in _execute_step_function
    step_func(**kwargs)
tests/utils/bdd_utils.py:78: in wrapper
    return fun(*ba.args, **ba.kwargs)
tests/gui/meta_steps/oneprovider/automation/workflow_results.py:157: in assert_status_of_task_is_one_of_two
    assert_task_status_in_parallel_box(selenium, browser_id,
<decorator-gen-1359>:2: in assert_task_status_in_parallel_box
    ???
tests/utils/utils.py:95: in wrapper
    return fun(*args, **kwargs)
tests/gui/steps/oneprovider/automation/automation_statuses.py:56: in assert_task_status_in_parallel_box
    assert_status(task, actual_status, expected_status)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = <tests.gui.utils.oneprovider.automation.Task object at 0x7fd4543636d0>
actual_status = 'Failed', expected_status = 'Finished'

    def assert_status(name, actual_status, expected_status):
        err_msg = (f'Actual "{name}" status: "{actual_status}" does not '
                   f'match expected: "{expected_status}"')
>       assert actual_status.lower() == expected_status.lower(), err_msg
E       AssertionError: Actual "Task in ParallelBox in WorkflowLane in WorkflowVisualiser in WorkflowExecutionPage in Oneprovider page" status: "Failed" does not match expected: "Finished"

tests/gui/steps/oneprovider/automation/automation_statuses.py:120: AssertionError