Acceptance tests using different clients concurrently. Environment deployed from packages.
Build: #2656 was successful
Job: Permission POSIX multi was successful
user1 creates file using client0 and user2 fails to change its permission using client2[1oz 1op 2oc-oneclient1-web GUi-oneclient1]: Test case result
The below summarizes the result of the test " user1 creates file using client0 and user2 fails to change its permission using client2[1oz 1op 2oc-oneclient1-web GUi-oneclient1]" in build 2,656 of Onedata Products - mixed acceptance pkg - Chrome permission POSIX multi tests.
- Description
- user1 creates file using client0 and user2 fails to change its permission using client2[1oz 1op 2oc-oneclient1-web GUi-oneclient1]
- Test class
- mixed.scenarios.test_permission_posix_multi
- Method
- test_user1_creates_file_using_client0_and_user2_fails_to_change_its_permission_using_client2[1oz_1op_2oc-oneclient1-web GUI-oneclient1]
- Jira Issue
-
- Duration
- 4 mins
- Status
- Failed (Existing Failure)
Error Log
RuntimeError: cannot click on button btn in Edit permission tab selenium = {'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")>} browser_id = 'user2', space = 'space1', path = 'file1', perm = '664' oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'> op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'> tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...f393c9a0>}, 'browser': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) modals = <class 'tests.gui.utils.common.modals.Modals'> popups = <class 'tests.gui.utils.common.popups.Popups'> @repeat_failed(timeout=WAIT_BACKEND) def assert_posix_permissions_in_op_gui(selenium, browser_id, space, path, perm, oz_page, op_container, tmp_memory, modals, popups): modal_name = 'Details modal' close_button = 'X' try: click_modal_button(selenium, browser_id, close_button, modal_name, modals) > _assert_posix_permissions(selenium, browser_id, space, path, perm, oz_page, op_container, tmp_memory, modals, popups) tests/gui/meta_steps/oneprovider/permissions.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ selenium = {'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")>} browser_id = 'user2', space = 'space1', path = 'file1', perm = '664' oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'> op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'> tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...f393c9a0>}, 'browser': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) modals = <class 'tests.gui.utils.common.modals.Modals'> popups = <class 'tests.gui.utils.common.popups.Popups'> def _assert_posix_permissions(selenium, browser_id, space, path, perm, oz_page, op_container, tmp_memory, modals, popups): modal_name = 'Details modal' close_button = 'X' > open_permission_modal(selenium, browser_id, path, space, tmp_memory, modals, oz_page, op_container, 'posix', popups) tests/gui/meta_steps/oneprovider/permissions.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ selenium = {'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")>} browser_id = 'user2', path = 'file1', space = 'space1' tmp_memory = defaultdict(<class 'dict'>, {'user1': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'...f393c9a0>}, 'browser': {'shares': {}, 'spaces': {}, 'groups': {}, 'mailbox': {}, 'oz': {}, 'window': {'modal': None}}}) modals = <class 'tests.gui.utils.common.modals.Modals'> oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'> op_container = <class 'tests.gui.utils.oneprovider.OPLoggedIn'> permission_type = 'posix' popups = <class 'tests.gui.utils.common.popups.Popups'> def open_permission_modal(selenium, browser_id, path, space, tmp_memory, modals, oz_page, op_container, permission_type, popups): option = 'Permissions' modal_name = 'Details modal' _click_menu_for_elem_somewhere_in_file_browser(selenium, browser_id, path, space, tmp_memory, oz_page, op_container) click_option_in_data_row_menu_in_browser(selenium, browser_id, option, popups) assert_tab_in_modal(selenium, browser_id, option, modals, modal_name) > select_permission_type(selenium, browser_id, permission_type, modals) tests/gui/meta_steps/oneprovider/permissions.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ({'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <sel...river (session="c1e676278b28608f6155bb55b947de35")>}, 'user2', 'posix', <class 'tests.gui.utils.common.modals.Modals'>) kwargs = {} ba = <BoundArguments (selenium={'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44e...5bb55b947de35")>}, browser_id='user2', permission_type='posix', modals=<class 'tests.gui.utils.common.modals.Modals'>)> param = <Parameter "modals">, 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: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ selenium = {'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")>} browser_id = 'user2', permission_type = 'posix' modals = <class 'tests.gui.utils.common.modals.Modals'> > ??? <decorator-gen-849>:2: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fun = <function select_permission_type at 0x7f5ff41a80d0> args = ({'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <sel...river (session="c1e676278b28608f6155bb55b947de35")>}, 'user2', 'posix', <class 'tests.gui.utils.common.modals.Modals'>) kwargs = {}, now = 1669340265.7829795, limit = 1669340269.7829795 i = 1669340269.7910006 @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 = {'user1': <selenium.webdriver.chrome.webdriver.WebDriver (session="1eaa0a8231a7edbd3f344c44ec9499b6")>, 'user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")>} browser_id = 'user2', permission_type = 'posix' modals = <class 'tests.gui.utils.common.modals.Modals'> @wt(parsers.parse('user of {browser_id} selects "{permission_type}" ' 'permission type in edit permissions panel')) @repeat_failed(timeout=WAIT_FRONTEND) def select_permission_type(selenium, browser_id, permission_type, modals): driver = selenium[browser_id] button_name = f'{permission_type.lower()}_button' > getattr(modals(driver).details_modal.edit_permissions, button_name).click() tests/gui/steps/oneprovider/permissions.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <tests.gui.utils.core.web_objects.ButtonPageObject object at 0x7f5ff375cb20> def click(self): > click_on_web_elem(self.driver, self._click_area, lambda: 'cannot click on {}'.format(self)) tests/gui/utils/core/base.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ driver = <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")> web_elem = <selenium.webdriver.remote.webelement.WebElement (session="c1e676278b28608f6155bb55b947de35", element="5803890a-f12f-47b7-97f3-965ae717484f")> err_msg = 'cannot click on button btn in Edit permission tab', delay = True def click_on_web_elem(driver, web_elem, err_msg, delay=True): disabled = 'disabled' in web_elem.get_attribute('class') # scroll to make the element visible if not web_elem.is_displayed(): web_elem.location_once_scrolled_into_view if web_elem.is_enabled() and web_elem.is_displayed() and not disabled: # TODO VFS-7484 make optional sleep and localize only those tests that need it or find better alternative # currently checking if elem is enabled not always work (probably after striping disabled from web elem # elem is not immediately clickable) if delay: sleep(delay if isinstance(delay, float) else 0.25) action = ActionChains(driver) action.move_to_element(web_elem).click_and_hold(web_elem).release(web_elem) action.perform() else: with suppress(TypeError): err_msg = err_msg() > raise RuntimeError(err_msg) E RuntimeError: cannot click on button btn in Edit permission tab tests/gui/utils/generic.py:137: RuntimeError During handling of the above exception, another exception occurred: request = <FixtureRequest for <Function 'test_user1_creates_file_using_client0_and_user2_fails_to_change_its_permission_using_client2[1oz_1op_2oc-oneclient1-web GUI-oneclient1]'>> @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) <decorator-gen-889>:2: in assert_posix_permissions_in_op ??? tests/utils/utils.py:95: in wrapper return fun(*args, **kwargs) tests/mixed/steps/data_permissions.py:102: in assert_posix_permissions_in_op assert_posix_permissions_in_op_gui(selenium, user, space, item_path, <decorator-gen-877>:2: in assert_posix_permissions_in_op_gui ??? tests/utils/utils.py:95: in wrapper return fun(*args, **kwargs) tests/gui/meta_steps/oneprovider/permissions.py:68: in assert_posix_permissions_in_op_gui _assert_posix_permissions(selenium, browser_id, space, path, perm, tests/gui/meta_steps/oneprovider/permissions.py:49: in _assert_posix_permissions open_permission_modal(selenium, browser_id, path, space, tmp_memory, modals, tests/gui/meta_steps/oneprovider/permissions.py:41: in open_permission_modal select_permission_type(selenium, browser_id, permission_type, modals) tests/utils/bdd_utils.py:78: in wrapper return fun(*ba.args, **ba.kwargs) <decorator-gen-849>:2: in select_permission_type ??? tests/utils/utils.py:95: in wrapper return fun(*args, **kwargs) tests/gui/steps/oneprovider/permissions.py:36: in select_permission_type getattr(modals(driver).details_modal.edit_permissions, tests/gui/utils/core/base.py:81: in click click_on_web_elem(self.driver, self._click_area, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ driver = <selenium.webdriver.chrome.webdriver.WebDriver (session="c1e676278b28608f6155bb55b947de35")> web_elem = <selenium.webdriver.remote.webelement.WebElement (session="c1e676278b28608f6155bb55b947de35", element="36385f9c-6a0e-4b2e-bd91-699bfe28bb58")> err_msg = 'cannot click on button btn in Edit permission tab', delay = True def click_on_web_elem(driver, web_elem, err_msg, delay=True): disabled = 'disabled' in web_elem.get_attribute('class') # scroll to make the element visible if not web_elem.is_displayed(): web_elem.location_once_scrolled_into_view if web_elem.is_enabled() and web_elem.is_displayed() and not disabled: # TODO VFS-7484 make optional sleep and localize only those tests that need it or find better alternative # currently checking if elem is enabled not always work (probably after striping disabled from web elem # elem is not immediately clickable) if delay: sleep(delay if isinstance(delay, float) else 0.25) action = ActionChains(driver) action.move_to_element(web_elem).click_and_hold(web_elem).release(web_elem) action.perform() else: with suppress(TypeError): err_msg = err_msg() > raise RuntimeError(err_msg) E RuntimeError: cannot click on button btn in Edit permission tab tests/gui/utils/generic.py:137: RuntimeError