GUI acceptance tests using environment deployed from packages.
Build: #940 failed
Job: POSIX multiuser failed
user1 changes file permission and user2 sees that it has changed[1oz 1op deployed]: Test case result
The below summarizes the result of the test " user1 changes file permission and user2 sees that it has changed[1oz 1op deployed]" in build 940 of Onedata Products - gui acceptance pkg - Chrome POSIX tests multiuser.
- Description
- user1 changes file permission and user2 sees that it has changed[1oz 1op deployed]
- Test class
- gui.scenarios.test_oneprovider_posix_multiuser
- Method
- test_user1_changes_file_permission_and_user2_sees_that_it_has_changed[1oz_1op_deployed]
- Duration
- 4 mins
- Status
- Failed (New Failure)
Error Log
RuntimeError: no "file1" found in file browser in Oneprovider page selenium = {'browser1': <selenium.webdriver.chrome.webdriver.WebDriver (session="014bc3609a637f394b993fc92762cfd1")>, 'browser2': <selenium.webdriver.chrome.webdriver.WebDriver (session="e3cc4e59f0a4822597d0129b76378d6f")>} browser_id = 'browser1', path = 'file1', space = 'space1' tmp_memory = defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window':...78229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'> op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'> def _click_menu_for_elem_somewhere_in_file_browser(selenium, browser_id, path, space, tmp_memory, oz_page, op_container): item_name, _ = get_item_name_and_containing_dir_path(path) try: go_to_path_without_last_elem(browser_id, tmp_memory, path) > click_menu_for_elem_in_file_browser(browser_id, item_name, tmp_memory) tests/gui/meta_steps/oneprovider/data.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ('browser1', 'file1', defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {...8229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}})) kwargs = {} ba = <BoundArguments (browser_id='browser1', item_name='file1', tmp_memory=defaultdict(<class 'dict'>, {'browser1': {'share...229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}))> param = <Parameter "tmp_memory">, 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:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ('browser1', 'file1', defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {...8229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}})) kwargs = {} ba = <BoundArguments (browser_id='browser1', item_name='file1', tmp_memory=defaultdict(<class 'dict'>, {'browser1': {'share...229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}))> param = <Parameter "tmp_memory">, 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:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser_id = 'browser1', item_name = 'file1' tmp_memory = defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window':...78229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) > ??? <decorator-gen-414>:2: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fun = <function click_menu_for_elem_in_file_browser at 0x7f0878534ae8> args = ('browser1', 'file1', defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {...8229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}})) kwargs = {}, now = 1593043040.7398028, limit = 1593043044.7398028 i = 1593043044.7498753 @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:80: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ browser_id = 'browser1', item_name = 'file1' tmp_memory = defaultdict(<class 'dict'>, {'browser1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window':...78229b0>}, 'browser2': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) @wt(parsers.parse('user of {browser_id} clicks on menu ' 'for "{item_name}" directory in file browser')) @wt(parsers.parse('user of {browser_id} clicks on menu ' 'for "{item_name}" file in file browser')) @repeat_failed(timeout=WAIT_FRONTEND) def click_menu_for_elem_in_file_browser(browser_id, item_name, tmp_memory): > browser = tmp_memory[browser_id]['file_browser'] E KeyError: 'file_browser' tests/gui/steps/oneprovider/file_browser.py:357: KeyError During handling of the above exception, another exception occurred: request = <FixtureRequest for <Function 'test_user1_changes_file_permission_and_user2_sees_that_it_has_changed[1oz_1op_deployed]'>> @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:76: in wrapper return fun(*ba.args, **ba.kwargs) tests/gui/meta_steps/oneprovider/permissions.py:52: in set_posix_permissions_in_op_gui oz_page, op_container, 'posix') tests/gui/meta_steps/oneprovider/permissions.py:33: in open_permission_modal oz_page, op_container) tests/gui/meta_steps/oneprovider/data.py:381: in open_modal_for_file_browser_item op_container) tests/gui/meta_steps/oneprovider/data.py:41: in _click_menu_for_elem_somewhere_in_file_browser click_menu_for_elem_in_file_browser(browser_id, item_name, tmp_memory) tests/utils/bdd_utils.py:76: in wrapper return fun(*ba.args, **ba.kwargs) tests/utils/bdd_utils.py:76: in wrapper return fun(*ba.args, **ba.kwargs) <decorator-gen-414>:2: in click_menu_for_elem_in_file_browser ??? tests/utils/utils.py:80: in wrapper return fun(*args, **kwargs) tests/gui/steps/oneprovider/file_browser.py:358: in click_menu_for_elem_in_file_browser browser.data[item_name].menu_button() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <tests.gui.utils.core.web_objects.PageObjectsSequence object at 0x7f0877822470> sel = 'file1' def __getitem__(self, sel): if isinstance(sel, int): item = self._getitem_by_idx(sel) if item: return self.cls(self.driver, item, self.parent) else: raise RuntimeError('Index out of bound. Requested item at ' '{idx} while limit is {limit} in ' '{parent}'.format(idx=sel, limit=len(self), parent=self.parent)) elif isinstance(sel, str): item = self._getitem_by_id(sel) if item: return item else: raise RuntimeError('no "{id}" found in ' '{parent}'.format(id=sel, > parent=self.parent)) E RuntimeError: no "file1" found in file browser in Oneprovider page tests/gui/utils/core/web_objects.py:85: RuntimeError