GUI acceptance tests using environment deployed from packages.

Build: #2817 failed

Job: Onezone harvesters effective privileges failed

Stages & jobs

  1. Qnthack - copy quarantine

  2. Acceptance Test

  3. Qnthack - rerun

    Final

user sees that group effective privileges are the sum of its direct parent direct privileges and its direct privileges[1oz 1op elasticsearch]: Test case result

The below summarizes the result of the test " user sees that group effective privileges are the sum of its direct parent direct privileges and its direct privileges[1oz 1op elasticsearch]" in build 2,817 of Onedata Products - gui acceptance pkg - Onezone harvesters effective privileges.
Description
user sees that group effective privileges are the sum of its direct parent direct privileges and its direct privileges[1oz 1op elasticsearch]
Test class
gui.scenarios.test_onezone_harvesters_effective_privileges
Method
test_user_sees_that_group_effective_privileges_are_the_sum_of_its_direct_parent_direct_privileges_and_its_direct_privileges[1oz_1op_elasticsearch]
Jira Issue
Duration
3 mins
Status
Failed (Existing Failure)

Error Log

AssertionError: Harvester management should be granted but is not
selenium = {'browser_admin': <selenium.webdriver.chrome.webdriver.WebDriver (session="d156476da1544e4335247ce1946b8c88")>, 'browser_user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="d90bd6cf6ddc70b4132391d0699b23b9")>}
browser_id = 'browser_admin', member_name = 'child_group_1'
member_type = 'groups', where = 'harvester'
config = 'Harvester management:\n  granted: True\nUser management:\n  granted: False\nGroup management:\n  granted: True\nSpace management:\n  granted: False'
onepanel = <class 'tests.gui.utils.onepanel.Onepanel'>
oz_page = <class 'tests.gui.utils.onezone.OZLoggedIn'>, option = 'effective '

    @wt(parsers.re('user of (?P<browser_id>.*) sees following '
                   '(?P<option>effective |)privileges of '
                   '"(?P<member_name>.*)" (?P<member_type>user|group) '
                   'in (?P<where>space|group|harvester|automation|cluster) '
                   'members subpage:\n(?P<config>(.|\s)*)'))
    def assert_privileges_in_members_subpage(selenium, browser_id, member_name,
                                             member_type, where, config, onepanel,
                                             oz_page, option):
        member_type = member_type + 's'
        privileges = yaml.load(config)
        tree = get_privilege_tree(selenium, browser_id, onepanel, oz_page, where,
                                  member_type, member_name)
        is_direct_privileges = False if option == 'effective ' else True
        # wait for set privileges to be visible in gui
        try:
>           tree.assert_privileges(selenium, browser_id, privileges,
                                   is_direct_privileges)

tests/gui/steps/onezone/members.py:592: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.gui.utils.common.privilege_tree.PrivilegeTree object at 0x7f66c1ed9ca0>
selenium = {'browser_admin': <selenium.webdriver.chrome.webdriver.WebDriver (session="d156476da1544e4335247ce1946b8c88")>, 'browser_user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="d90bd6cf6ddc70b4132391d0699b23b9")>}
browser_id = 'browser_admin'
privileges = {'Group management': {'granted': True}, 'Harvester management': {'granted': True}, 'Space management': {'granted': False}, 'User management': {'granted': False}}
is_direct_privileges = False

    def assert_privileges(self, selenium, browser_id, privileges,
                          is_direct_privileges=True):
        """Assert privileges according to given config.
                For this method only dict should be passed!
    
                Config format given in earlier in yaml is as follow:
    
                    privilege_type:
                        granted: True/False/Partially
                        privilege subtypes:            ---> always and only when
                                                            granted is Partially
                            privilege_subtype: True/False
                    ...
    
                    Space management:
                      granted: Partially
                      privilege subtypes:
                        Modify space: True
                        Remove space: False
                    User management:
                      granted: False
                """
>       self._assert_privileges(selenium, browser_id, privileges,
                                is_direct_privileges)

tests/gui/utils/common/privilege_tree.py:193: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.gui.utils.common.privilege_tree.PrivilegeTree object at 0x7f66c1ed9ca0>
selenium = {'browser_admin': <selenium.webdriver.chrome.webdriver.WebDriver (session="d156476da1544e4335247ce1946b8c88")>, 'browser_user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="d90bd6cf6ddc70b4132391d0699b23b9")>}
browser_id = 'browser_admin'
privileges = {'Group management': {'granted': True}, 'Harvester management': {'granted': True}, 'Space management': {'granted': False}, 'User management': {'granted': False}}
is_direct_privileges = False

    def _assert_privileges(self, selenium, browser_id, privileges,
                           is_direct_privileges):
        for privilege_name, privilege_group in privileges.items():
>           self._assert_privilege_group(selenium, browser_id, privilege_group,
                                         privilege_name, is_direct_privileges)

tests/gui/utils/common/privilege_tree.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.gui.utils.common.privilege_tree.PrivilegeTree object at 0x7f66c1ed9ca0>
selenium = {'browser_admin': <selenium.webdriver.chrome.webdriver.WebDriver (session="d156476da1544e4335247ce1946b8c88")>, 'browser_user2': <selenium.webdriver.chrome.webdriver.WebDriver (session="d90bd6cf6ddc70b4132391d0699b23b9")>}
browser_id = 'browser_admin', group = {'granted': True}
name = 'Harvester management', is_direct_privileges = False

    def _assert_privilege_group(self, selenium, browser_id, group, name,
                                is_direct_privileges):
        driver = selenium[browser_id]
        privilege_row = self.privilege_groups[name]
        granted = group['granted']
        if granted == 'Partially':
            sub_privileges = group['privilege subtypes']
            privilege_row.expand(driver)
            for sub_name, sub_granted in sub_privileges.items():
                if is_direct_privileges:
                    self.privileges[sub_name].assert_privilege_granted(sub_granted)
                else:
                    self.privileges[sub_name].assert_effective_privilege_granted(sub_granted)
            privilege_row.collapse(driver)
        if is_direct_privileges:
            privilege_row.assert_privilege_granted(granted)
        else:
>           privilege_row.assert_effective_privilege_granted(granted)

tests/gui/utils/common/privilege_tree.py:219: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.gui.utils.common.privilege_tree.PrivilegeGroup object at 0x7f66c1ec8250>
granted = True

    def assert_effective_privilege_granted(self, granted):
        granted_count = int(self.effective_priv.split('/')[0])
        all_count = int(self.effective_priv.split('/')[1])
        if granted == 'Partially':
            msg = f'{self.name} should be partially granted but is not'
            assert granted_count != all_count and granted_count > 0, msg
        elif granted:
            msg = f'{self.name} should be granted but is not'
>           assert granted_count == all_count, msg
E           AssertionError: Harvester management should be granted but is not

tests/gui/utils/common/privilege_tree.py:136: AssertionError

During handling of the above exception, another exception occurred:

request = <FixtureRequest for <Function 'test_user_sees_that_group_effective_privileges_are_the_sum_of_its_direct_parent_direct_privileges_and_its_direct_privileges[1oz_1op_elasticsearch]'>>

    @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/steps/onezone/members.py:596: in assert_privileges_in_members_subpage
    tree.assert_privileges(selenium, browser_id, privileges,
tests/gui/utils/common/privilege_tree.py:193: in assert_privileges
    self._assert_privileges(selenium, browser_id, privileges,
tests/gui/utils/common/privilege_tree.py:199: in _assert_privileges
    self._assert_privilege_group(selenium, browser_id, privilege_group,
tests/gui/utils/common/privilege_tree.py:219: in _assert_privilege_group
    privilege_row.assert_effective_privilege_granted(granted)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.gui.utils.common.privilege_tree.PrivilegeGroup object at 0x7f66c1ec6b80>
granted = True

    def assert_effective_privilege_granted(self, granted):
        granted_count = int(self.effective_priv.split('/')[0])
        all_count = int(self.effective_priv.split('/')[1])
        if granted == 'Partially':
            msg = f'{self.name} should be partially granted but is not'
            assert granted_count != all_count and granted_count > 0, msg
        elif granted:
            msg = f'{self.name} should be granted but is not'
>           assert granted_count == all_count, msg
E           AssertionError: Harvester management should be granted but is not

tests/gui/utils/common/privilege_tree.py:136: AssertionError