Acceptance tests using different clients concurrently. Environment deployed from packages.

Build: #1837 failed

Job: Chrome nested directories tests failed

user removes empty directory and its parents using client2 and using client1 sees that they have disappeared[1oz 1op 1oc-web GUi-oneclient1]: Test case result

The below summarizes the result of the test " user removes empty directory and its parents using client2 and using client1 sees that they have disappeared[1oz 1op 1oc-web GUi-oneclient1]" in build 1,837 of Onedata Products - mixed acceptance pkg - Chrome nested directories tests.
Description
user removes empty directory and its parents using client2 and using client1 sees that they have disappeared[1oz 1op 1oc-web GUi-oneclient1]
Test class
mixed.scenarios.test_nested_directories
Method
test_user_removes_empty_directory_and_its_parents_using_client2_and_using_client1_sees_that_they_have_disappeared[1oz_1op_1oc-web GUI-oneclient1]
Duration
3 mins
Status
Failed (New Failure)

Error Log

RuntimeError: waited too long
selenium = {'browser': <selenium.webdriver.chrome.webdriver.WebDriver (session="1107d92dabbac136fb7909e5670833f4")>, 'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1107d92dabbac136fb7909e5670833f4")>}
browser_id = 'user1', path = 'dir1/dir2', item_type = 'directory', name = 'dir3'
tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...8-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}})
op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'>
res = 'succeeds', space = 'space1'
modals = <class 'tests.gui.utils.common.modals.Modals'>
oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'>

    @wt(parsers.re(r'user of (?P<browser_id>\w+) (?P<res>.*) to create '
                   r'(?P<item_type>directory) "(?P<name>[\w._-]+)" '
                   '(in "(?P<path>.*)" )?in "(?P<space>.*)"'))
    def create_item_in_op_gui(selenium, browser_id, path, item_type, name,
                              tmp_memory, op_container, res, space, modals, oz_page):
        # change None to empty string if path not given
        path = path.lstrip('/') if path else ''
        button = f'New {item_type}'
        modal_header = f'Create new {item_type}:'
        modal_name = 'Create dir'
        text = 'Creating directory failed'
        option = 'enter'
    
        def _open_menu_for_item_in_file_browser():
            if path:
                go_to_path(browser_id, tmp_memory, path)
            click_button_from_file_browser_menu_bar(selenium, browser_id,
                                                    button, op_container)
    
        try:
>           _open_menu_for_item_in_file_browser()

tests/gui/meta_steps/oneprovider/data.py:138: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def _open_menu_for_item_in_file_browser():
        if path:
>           go_to_path(browser_id, tmp_memory, path)

tests/gui/meta_steps/oneprovider/data.py:133: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser_id = 'user1'
tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...8-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}})
path = 'dir1/dir2'

    def go_to_path(browser_id, tmp_memory, path):
        if '/' in path:
            item_name, path_list = get_item_name_and_containing_dir_path(path)
            path_list.append(item_name)
        else:
            path_list = [path]
        for directory in path_list:
            if directory != '':
>               double_click_on_item_in_browser(browser_id, directory, tmp_memory)

tests/gui/meta_steps/oneprovider/data.py:374: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = ('user1', 'dir2', defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz'...-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}}))
kwargs = {}
ba = <BoundArguments (browser_id='user1', item_name='dir2', tmp_memory=defaultdict(<class 'dict'>, {'user1': {'shares': {},...r': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}}), which_browser='file browser')>
param = <Parameter "which_browser='file browser'">
ann = <class 'inspect._empty'>

    @wraps(fun)
    def wrapper(*args, **kwargs):
        ba = sig.bind(*args, **kwargs)
        ba.apply_defaults()
    
        for param in parameters.values():
            ann = param.annotation
            if ann is not inspect.Parameter.empty:
                value = ba.arguments[param.name]
                try:
                    if not isinstance(value, ann):
                        ba.arguments[param.name] = ann(value)
                except Exception as ex:
                    msg = f"Cannot cast '{param.name}' <{value}> to {ann}"
                    raise ValueError(msg) from ex
    
>       return fun(*ba.args, **ba.kwargs)

tests/utils/bdd_utils.py:78: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser_id = 'user1', item_name = 'dir2'
tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...8-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}})
which_browser = 'file browser'

>   ???

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

fun = <function double_click_on_item_in_browser at 0x7fc4462a0598>
args = ('user1', 'dir2', defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz'...}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}}), 'file browser')
kwargs = {}, now = 1630616347.5776284, limit = 1630616362.5776284
i = 1630616362.9362283

    @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:90: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser_id = 'user1', item_name = 'dir2'
tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...8-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}})
which_browser = 'file_browser'

    @wt(parsers.parse('user of {browser_id} double clicks on item named'
                      ' "{item_name}" in {which_browser}'))
    @repeat_failed(timeout=WAIT_BACKEND)
    def double_click_on_item_in_browser(browser_id, item_name, tmp_memory,
                                        which_browser='file browser'):
        which_browser = transform(which_browser)
        browser = tmp_memory[browser_id][which_browser]
        start = time.time()
        while item_name not in browser.data:
            time.sleep(1)
            if start + time.time() > start + WAIT_BACKEND:
>               raise RuntimeError('waited too long')
E               RuntimeError: waited too long

tests/gui/steps/oneprovider/browser.py:26: RuntimeError

During handling of the above exception, another exception occurred:

request = <FixtureRequest for <Function 'test_user_removes_empty_directory_and_its_parents_using_client2_and_using_client1_sees_that_they_have_disappeared[1oz_1op_1oc-web GUI-oneclient1]'>>

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

/usr/local/lib/python3.6/dist-packages/pytest_bdd/scenario.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.6/dist-packages/pytest_bdd/scenario.py:189: in _execute_scenario
    _execute_step_function(request, scenario, step, step_func)
/usr/local/lib/python3.6/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/mixed/steps/data_basic.py:412: in create_directory_structure_in_op
    modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:280: in create_directory_structure_in_op_gui
    op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:311: in _create_content
    tmp_memory, op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:299: in _create_item
    op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:311: in _create_content
    tmp_memory, op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:299: in _create_item
    op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:311: in _create_content
    tmp_memory, op_container, modals, oz_page, popups)
tests/gui/meta_steps/oneprovider/data.py:289: in _create_item
    modals, oz_page)
tests/utils/bdd_utils.py:78: in wrapper
    return fun(*ba.args, **ba.kwargs)
tests/gui/meta_steps/oneprovider/data.py:142: in create_item_in_op_gui
    _open_menu_for_item_in_file_browser()
tests/gui/meta_steps/oneprovider/data.py:133: in _open_menu_for_item_in_file_browser
    go_to_path(browser_id, tmp_memory, path)
tests/gui/meta_steps/oneprovider/data.py:374: in go_to_path
    double_click_on_item_in_browser(browser_id, directory, tmp_memory)
tests/utils/bdd_utils.py:78: in wrapper
    return fun(*ba.args, **ba.kwargs)
<decorator-gen-445>:2: in double_click_on_item_in_browser
    ???
tests/utils/utils.py:90: in wrapper
    return fun(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

browser_id = 'user1', item_name = 'dir2'
tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...8-093de8a5d9bf")>}, 'file_browser': <tests.gui.utils.oneprovider.file_browser._FileBrowser object at 0x7fc444f33278>}})
which_browser = 'file_browser'

    @wt(parsers.parse('user of {browser_id} double clicks on item named'
                      ' "{item_name}" in {which_browser}'))
    @repeat_failed(timeout=WAIT_BACKEND)
    def double_click_on_item_in_browser(browser_id, item_name, tmp_memory,
                                        which_browser='file browser'):
        which_browser = transform(which_browser)
        browser = tmp_memory[browser_id][which_browser]
        start = time.time()
        while item_name not in browser.data:
            time.sleep(1)
            if start + time.time() > start + WAIT_BACKEND:
>               raise RuntimeError('waited too long')
E               RuntimeError: waited too long

tests/gui/steps/oneprovider/browser.py:26: RuntimeError