Пример #1
0
    def setUp(self):
        self.group1 = salt("group1")
        self.group2 = salt("group2")
        self.parent_group = salt("parentGroup")
        self.grand_parent_group = salt("grandParentGroup")
        self.new_groups = (
            Group(groupname=self.group1, memberUsers=[self.user_1]),
            Group(groupname=self.group2, memberUsers=[self.user_1]),
            Group(groupname=self.parent_group, memberGroups=[self.group1]),
            Group(groupname=self.grand_parent_group, memberGroups=[self.parent_group]),
        )
        for group in self.new_groups:
            self.root_remote.groups.create(group)

        # Create test workspace
        workspace_name = salt("groupChangesTestWorkspace")
        self.workspace_group = self.root_remote.documents.create(
            Document(
                name=workspace_name,
                type="Workspace",
                properties={"dc:title": workspace_name},
            ),
            parent_path=env.WS_DIR,
        )
        self.workspace_path = self.workspace_group.path

        self.admin_remote = root_remote(base_folder=self.workspace_path)

        self.engine_1.start()
        self.wait_sync(wait_for_async=True)
Пример #2
0
def test_create_delete_subgroup(server):
    # Create 2 groups
    group = Group(groupname="ParentGroup", grouplabel="ParentGroup Test")
    group1 = server.groups.create(group)

    group = Group(groupname="SubGroup", grouplabel="SubGroup Test")
    group2 = server.groups.create(group)

    # Add group2 to subgroups of group1
    group1.memberGroups = [group2.groupname]
    group1.save()

    group2.delete()
    group1.delete()
Пример #3
0
    def setUp(self):
        super().setUp()
        remote = pytest.root_remote

        # Create test workspace
        workspaces_path = "/default-domain/workspaces"
        workspace_name = "groupChangesTestWorkspace"
        self.workspace_path = workspaces_path + "/" + workspace_name

        self.workspace = remote.documents.create(
            Document(
                name=workspace_name,
                type="Workspace",
                properties={"dc:title": "Group Changes Test Workspace"},
            ),
            parent_path=workspaces_path,
        )

        # Create test groups
        group_names = self.get_group_names()
        for group in ("group1", "group2", "parentGroup", "grandParentGroup"):
            if group in group_names:
                remote.groups.delete(group)

        for group in [
                Group(groupname="group1", memberUsers=["driveuser_1"]),
                Group(groupname="group2", memberUsers=["driveuser_1"]),
                Group(groupname="parentGroup", memberGroups=["group1"]),
                Group(groupname="grandParentGroup",
                      memberGroups=["parentGroup"]),
        ]:
            remote.groups.create(group)

        group_names = self.get_group_names()
        assert "group1" in group_names
        assert "group2" in group_names
        assert "parentGroup" in group_names
        assert "grandParentGroup" in group_names

        self.admin_remote = DocRemote(
            pytest.nuxeo_url,
            pytest.user,
            "nxdrive-test-administrator-device",
            pytest.version,
            password=pytest.password,
            base_folder=self.workspace_path,
        )
Пример #4
0
def get_group(server):
    group = Group(
        groupname='plops',
        grouplabel='Group Test',
        memberUsers=['Administrator'],
        memberGroups=['Administrators'])
    assert repr(group)
    return server.groups.create(group)
Пример #5
0
def get_group(server):
    group = Group(
        groupname="plops",
        grouplabel="Group Test",
        memberUsers=["Administrator"],
        memberGroups=["Administrators"],
    )
    assert repr(group)
    return server.groups.create(group)
Пример #6
0
    def _test_group_changes(self, folder_path, group_name, need_parent=False):
        """
        Tests changes on the given group that has access to the given folder:
            - Remove the test user from the group.
            - Add the test user to the group.
            - Delete the group.
            - Create the group including the test user.
        """
        log.info(
            "Test changes on %s for %s with need_parent=%r",
            group_name,
            folder_path,
            need_parent,
        )
        remote = self.admin_remote
        local = self.local_root_client_1

        log.info("Remove driveuser_1 from %s", group_name)
        group = remote.groups.get(group_name)
        group.memberUsers = []
        group.save()

        log.info("Check that %s is deleted locally", folder_path)
        self.wait_sync(wait_for_async=True)
        assert not local.exists(folder_path)

        log.info("Add driveuser_1 to %s", group_name)
        group.memberUsers = [self.user_1]
        group.save()

        log.info("Check that %s is created locally", folder_path)
        self.wait_sync(wait_for_async=True)
        assert local.exists(folder_path)

        log.info("Delete %s", group_name)
        remote.groups.delete(group_name)

        log.info("Check that %s is deleted locally", folder_path)
        self.wait_sync(wait_for_async=True)
        assert not local.exists(folder_path)

        log.info("Create %s", group_name)
        remote.groups.create(Group(groupname=group_name, memberUsers=[self.user_1]))

        if need_parent:
            log.info(
                "%s should not be created locally since "
                "the newly created group has not been added yet "
                "as a subgroup of parentGroup",
                folder_path,
            )
            self.wait_sync(wait_for_async=True)
            assert not local.exists(folder_path)

            log.debug("Add %s as a subgroup of parentGroup", group_name)
            group = remote.groups.get(self.parent_group)
            group.memberGroups = [group_name]
            group.save()

        log.info("Check that %s is created locally", folder_path)
        self.wait_sync(wait_for_async=True)
        assert local.exists(folder_path)