示例#1
0
    def test_positive_update_usergroup(self):
        """Update a host with a new user group

        @id: a8d702ee-592a-4b5d-9fec-2fa07d3fda1b

        @assert: A host is updated with a new user group

        @CaseLevel: Integration
        """
        org = entities.Organization().create()
        loc = entities.Location(organization=[org]).create()
        role = entities.Role().create()
        user = entities.User(
            location=[loc],
            organization=[org],
            role=[role],
        ).create()
        usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host = entities.Host(
            location=loc,
            organization=org,
            owner=usergroup,
            owner_type='Usergroup',
        ).create()
        new_usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host.owner = new_usergroup
        host = host.update(['owner'])
        self.assertEqual(host.owner.read().name, new_usergroup.name)
示例#2
0
def test_positive_create_and_update_with_usergroup(module_org, module_location,
                                                   function_role):
    """Create and update host with user group specified

    :id: 706e860c-8c05-4ddc-be20-0ecd9f0da813

    :expectedresults: A host is created and updated with expected user group assigned

    :CaseLevel: Integration
    """
    user = entities.User(location=[module_location],
                         organization=[module_org],
                         role=[function_role]).create()
    usergroup = entities.UserGroup(role=[function_role], user=[user]).create()
    host = entities.Host(
        location=module_location,
        organization=module_org,
        owner=usergroup,
        owner_type='Usergroup',
    ).create()
    assert host.owner.read().name == usergroup.name
    new_usergroup = entities.UserGroup(role=[function_role],
                                       user=[user]).create()
    host.owner = new_usergroup
    host = host.update(['owner'])
    assert host.owner.read().name == new_usergroup.name
示例#3
0
    def test_positive_update_usergroup(self):
        """Update a host with a new user group

        @feature: Hosts

        @assert: A host is updated with a new user group
        """
        org = entities.Organization().create()
        loc = entities.Location(organization=[org]).create()
        role = entities.Role().create()
        user = entities.User(
            location=[loc],
            organization=[org],
            role=[role],
        ).create()
        usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host = entities.Host(
            location=loc,
            organization=org,
            owner=usergroup,
            owner_type='Usergroup',
        ).create()
        new_usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host.owner = new_usergroup
        host = host.update(['owner'])
        self.assertEqual(host.owner.read().name, new_usergroup.name)
示例#4
0
    def test_negative_create_with_same_name(self):
        """Attempt to create user group with a name of already existent entity.

        @Feature: Usergroup

        @Assert: User group is not created.
        """
        user_group = entities.UserGroup().create()
        with self.assertRaises(HTTPError):
            entities.UserGroup(name=user_group.name).create()
示例#5
0
    def test_negative_create_with_same_name(self):
        """Attempt to create user group with a name of already existent entity.

        @id: aba0925a-d5ec-4e90-86c6-404b9b6f0179

        @Assert: User group is not created.
        """
        user_group = entities.UserGroup().create()
        with self.assertRaises(HTTPError):
            entities.UserGroup(name=user_group.name).create()
示例#6
0
    def test_negative_create_with_same_name(self):
        """Attempt to create user group with a name of already existent entity.

        :id: aba0925a-d5ec-4e90-86c6-404b9b6f0179

        :expectedresults: User group is not created.

        :CaseImportance: Critical
        """
        user_group = entities.UserGroup().create()
        with pytest.raises(HTTPError):
            entities.UserGroup(name=user_group.name).create()
示例#7
0
    def test_positive_update_with_new_usergroup(self):
        """Add new user group to existing one

        @Feature: Usergroup

        @Assert: User group is added to existing group successfully.
        """
        new_usergroup = entities.UserGroup().create()
        user_group = entities.UserGroup().create()
        user_group.usergroup = [new_usergroup]
        user_group = user_group.update(['usergroup'])
        self.assertEqual(new_usergroup.name,
                         user_group.usergroup[0].read().name)
示例#8
0
    def test_positive_update_with_new_usergroup(self):
        """Add new user group to existing one

        @id: 3cb29d07-5789-4f94-9fd9-a7e494b3c110

        @Assert: User group is added to existing group successfully.
        """
        new_usergroup = entities.UserGroup().create()
        user_group = entities.UserGroup().create()
        user_group.usergroup = [new_usergroup]
        user_group = user_group.update(['usergroup'])
        self.assertEqual(
            new_usergroup.name, user_group.usergroup[0].read().name)
示例#9
0
    def test_negative_update_with_same_name(self):
        """Attempt to update user group with a name of already existent entity.

        @Feature: Usergroup

        @Assert: User group is not updated.
        """
        name = gen_string('alphanumeric')
        entities.UserGroup(name=name).create()
        new_user_group = entities.UserGroup().create()
        new_user_group.name = name
        with self.assertRaises(HTTPError):
            new_user_group.update(['name'])
        self.assertNotEqual(new_user_group.read().name, name)
示例#10
0
    def test_positive_update_with_new_usergroup(self):
        """Add new user group to existing one

        :id: 3cb29d07-5789-4f94-9fd9-a7e494b3c110

        :expectedresults: User group is added to existing group successfully.

        :CaseImportance: Critical
        """
        new_usergroup = entities.UserGroup().create()
        user_group = entities.UserGroup().create()
        user_group.usergroup = [new_usergroup]
        user_group = user_group.update(['usergroup'])
        assert new_usergroup.name == user_group.usergroup[0].read().name
示例#11
0
    def test_positive_create_with_usergroup(self):
        """Create new user group using another user group attached to the
        initial group.

        @Feature: Usergroup

        @Assert: User group is created successfully.
        """
        for name in valid_data_list():
            with self.subTest(name):
                sub_user_group = entities.UserGroup(name=name).create()
                user_group = entities.UserGroup(usergroup=[sub_user_group
                                                           ], ).create()
                self.assertEqual(len(user_group.usergroup), 1)
                self.assertEqual(user_group.usergroup[0].read().name, name)
示例#12
0
def test_post_verify_usergroup_membership(request):
    """After upgrade, check the LDAP user's(that we created before the upgrade) existence and
    their functionality.

    :steps:
        1. verify ldap user(created before upgrade) is part of user group.
        2. Update ldap auth.

    :expectedresults: After upgrade, user group membership should remain the same and LDAP
    auth update should work.
    """
    pre_test_name = [
        mark.kwargs['depend_on'].__name__ for mark in request.node.own_markers
        if 'depend_on' in mark.kwargs
    ][0]
    user_group = entities.UserGroup().search(
        query={'search': f'name={pre_test_name}_user_group'})
    authsource = entities.AuthSourceLDAP().search(
        query={'search': f'name={pre_test_name}_server'})[0]
    request.addfinalizer(authsource.delete)
    request.addfinalizer(user_group[0].delete)
    user = entities.User().search(
        query={'search': f'login={settings.ldap.username}'})[0]
    request.addfinalizer(user.delete)
    assert user.read().id == user_group[0].read().user[0].id
示例#13
0
    def test_positive_create_with_usergroups(self):
        """Create new user group using multiple user groups attached to that
        initial group.

        :id: 9ba71288-af8b-4957-8413-442a47057634

        :expectedresults: User group is created successfully and contains all
            expected user groups

        :CaseLevel: Integration
        """
        sub_user_groups = [entities.UserGroup().create() for _ in range(randint(3, 5))]
        user_group = entities.UserGroup(usergroup=sub_user_groups).create()
        assert sorted([usergroup.name for usergroup in sub_user_groups]) == sorted(
            [usergroup.read().name for usergroup in user_group.usergroup]
        )
示例#14
0
def test_positive_update_owner_type(owner_type, module_org, module_location,
                                    module_user):
    """Update a host's ``owner_type``.

    :id: b72cd8ef-3a0b-4d2d-94f9-9b64908d699a

    :parametrized: yes

    :expectedresults: The host's ``owner_type`` attribute is updated as
        requested.

    :CaseImportance: Critical

    :BZ: 1210001
    """
    owners = {
        'User': module_user,
        'Usergroup': entities.UserGroup().create(),
    }
    host = entities.Host(organization=module_org,
                         location=module_location).create()
    host.owner_type = owner_type
    host.owner = owners[owner_type]
    host = host.update(['owner_type', 'owner'])
    assert host.owner_type == owner_type
    assert host.owner.read() == owners[owner_type]
示例#15
0
    def test_positive_delete_by_type(self):
        """Delete some entities of different types and check audit logs for
        these events using entity type as search criteria

        :id: de9b056f-10da-485a-87ce-b02a9efff15c

        :expectedresults: Audit logs contain corresponding entries per each
            delete event
        """
        for entity in [
            entities.Architecture(),
            entities.Domain(),
            entities.Host(),
            entities.HostGroup(),
            entities.Location(),
            entities.Organization(),
            entities.Role(),
            entities.UserGroup(),
        ]:
            created_entity = entity.create()
            created_entity.delete()
            audits = entities.Audit().search(
                query={'search': 'type={0}'.format(
                    created_entity.__class__.__name__.lower())
                }
            )
            entity_audits = [entry for entry in audits
                             if entry.auditable_name == created_entity.name]
            if not entity_audits:
                self.fail('audit not found by name "{}"'.format(
                            created_entity.name))
            audit = entity_audits[0]
            self.assertEqual(audit.auditable_id, created_entity.id)
            self.assertEqual(audit.action, 'destroy')
            self.assertEqual(audit.version, 2)
示例#16
0
    def test_post_verify_usergroup_membership(self, request, dependent_scenario_name):
        """After upgrade, check the LDAP user created before the upgrade still exists and its
         update functionality should work.

        :id: postupgrade-7545fc6a-bd57-4403-90c8-c68a7a3b5bca

        :steps:
            1. verify ldap user(created before upgrade) is part of user group.
            2. Update ldap auth.

        :expectedresults: After upgrade, user group membership should remain the same and LDAP
        auth update should work.
        """
        pre_test_name = dependent_scenario_name
        user_group = entities.UserGroup().search(
            query={'search': f'name={pre_test_name}_user_group'}
        )
        authsource = entities.AuthSourceLDAP().search(
            query={'search': f'name={pre_test_name}_server'}
        )[0]
        request.addfinalizer(authsource.delete)
        request.addfinalizer(user_group[0].delete)
        user = entities.User().search(query={'search': f'login={settings.ldap.username}'})[0]
        request.addfinalizer(user.delete)
        assert user.read().id == user_group[0].read().user[0].id
示例#17
0
    def test_positive_update_by_type(self):
        """Update some entities of different types and check audit logs for
        these events using entity type as search criteria

        :id: 43e73a11-b241-4b91-bdf6-e966366014e8

        :expectedresults: Audit logs contain corresponding entries per each
            update event
        """
        for entity in [
            entities.Architecture(),
            entities.Domain(),
            entities.HostGroup(),
            entities.Location(),
            entities.Organization(),
            entities.Role(),
            entities.UserGroup(),
        ]:
            created_entity = entity.create()
            name = created_entity.name
            new_name = gen_string('alpha')
            created_entity.name = new_name
            created_entity = created_entity.update(['name'])
            audit = entities.Audit().search(
                query={'search': 'type={0}'.format(
                    created_entity.__class__.__name__.lower())
                }
            )[0]
            self.assertEqual(audit.auditable_name, name)
            self.assertEqual(audit.auditable_id, created_entity.id)
            self.assertEqual(
                audit.audited_changes['name'], [name, new_name])
            self.assertEqual(audit.action, 'update')
            self.assertEqual(audit.version, 2)
示例#18
0
def test_positive_delete_by_type():
    """Delete some entities of different types and check audit logs for
    these events using entity type as search criteria

    :id: de9b056f-10da-485a-87ce-b02a9efff15c

    :expectedresults: Audit logs contain corresponding entries per each
        delete event

    :CaseImportance: Medium
    """
    for entity in [
            entities.Architecture(),
            entities.Domain(),
            entities.Host(),
            entities.HostGroup(),
            entities.Location(),
            entities.Role(),
            entities.UserGroup(),
    ]:
        created_entity = entity.create()
        created_entity.delete()
        audits = entities.Audit().search(
            query={
                'search': f'type={created_entity.__class__.__name__.lower()}'
            })
        entity_audits = [
            entry for entry in audits
            if entry.auditable_name == created_entity.name
        ]
        assert entity_audits, f'audit not found by name "{created_entity.name}"'
        audit = entity_audits[0]
        assert audit.auditable_id == created_entity.id
        assert audit.action == 'destroy'
        assert audit.version == 2
示例#19
0
    def test_positive_create_with_usergroup(self):
        """Create a host with user group specified

        @feature: Hosts

        @assert: A host is created with expected user group assigned
        """
        org = entities.Organization().create()
        loc = entities.Location(organization=[org]).create()
        role = entities.Role().create()
        user = entities.User(
            location=[loc],
            organization=[org],
            role=[role],
        ).create()
        usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host = entities.Host(
            location=loc,
            organization=org,
            owner=usergroup,
            owner_type='Usergroup',
        ).create()
        self.assertEqual(host.owner.read().name, usergroup.name)
示例#20
0
    def test_negative_update_with_same_name(self):
        """Attempt to update user group with a name of already existent entity.

        :id: 14888998-9282-4d81-9e99-234d19706783

        :expectedresults: User group is not updated.

        :CaseImportance: Critical
        """
        name = gen_string('alphanumeric')
        entities.UserGroup(name=name).create()
        new_user_group = entities.UserGroup().create()
        new_user_group.name = name
        with pytest.raises(HTTPError):
            new_user_group.update(['name'])
        assert new_user_group.read().name != name
示例#21
0
    def test_positive_create_with_usergroup(self):
        """Create a host with user group specified

        @id: 706e860c-8c05-4ddc-be20-0ecd9f0da813

        @assert: A host is created with expected user group assigned

        @CaseLevel: Integration
        """
        org = entities.Organization().create()
        loc = entities.Location(organization=[org]).create()
        role = entities.Role().create()
        user = entities.User(
            location=[loc],
            organization=[org],
            role=[role],
        ).create()
        usergroup = entities.UserGroup(
            role=[role],
            user=[user],
        ).create()
        host = entities.Host(
            location=loc,
            organization=org,
            owner=usergroup,
            owner_type='Usergroup',
        ).create()
        self.assertEqual(host.owner.read().name, usergroup.name)
示例#22
0
    def test_positive_create_with_usergroup(self, name):
        """Create new user group using another user group attached to the
        initial group.

        :id: 2a3f7b1a-7411-4c12-abaf-9a3ca1dfae31

        :parametrized: yes

        :expectedresults: User group is created successfully.

        :CaseImportance: Critical
        """
        sub_user_group = entities.UserGroup(name=name).create()
        user_group = entities.UserGroup(usergroup=[sub_user_group]).create()
        assert len(user_group.usergroup) == 1
        assert user_group.usergroup[0].read().name == name
示例#23
0
def ldap_usergroup_name():
    """Return some random usergroup name, and attempt to delete such usergroup when test finishes.
    """
    usergroup_name = gen_string('alphanumeric')
    yield usergroup_name
    user_groups = entities.UserGroup().search(query={'search': 'name="{}"'.format(usergroup_name)})
    if user_groups:
        user_groups[0].delete()
示例#24
0
    def test_positive_create_with_usergroup(self):
        """Create new user group using another user group attached to the
        initial group.

        :id: 2a3f7b1a-7411-4c12-abaf-9a3ca1dfae31

        :expectedresults: User group is created successfully.

        :CaseImportance: Critical
        """
        for name in valid_data_list():
            with self.subTest(name):
                sub_user_group = entities.UserGroup(name=name).create()
                user_group = entities.UserGroup(usergroup=[sub_user_group
                                                           ], ).create()
                self.assertEqual(len(user_group.usergroup), 1)
                self.assertEqual(user_group.usergroup[0].read().name, name)
示例#25
0
    def test_positive_create_with_usergroups(self):
        """Create new user group using multiple user groups attached to that
        initial group.

        @Feature: Usergroup

        @Assert: User group is created successfully and contains all expected
        user groups
        """
        sub_user_groups = [
            entities.UserGroup().create() for _ in range(randint(3, 5))
        ]
        user_group = entities.UserGroup(usergroup=sub_user_groups).create()
        self.assertEqual(
            sorted([usergroup.name for usergroup in sub_user_groups]),
            sorted(
                [usergroup.read().name for usergroup in user_group.usergroup]))
示例#26
0
    def test_negative_create_with_name(self):
        """Attempt to create user group with invalid name.

        @Feature: Usergroup

        @Assert: User group is not created.
        """
        for name in invalid_values_list():
            with self.subTest(name):
                with self.assertRaises(HTTPError):
                    entities.UserGroup(name=name).create()
示例#27
0
 def _clean_up_previous_ldap(self):
     """clean up the all ldap settings user, usergroup and ldap delete"""
     ldap = entities.AuthSourceLDAP().search()
     for ldap_auth in range(len(ldap)):
         users = entities.User(auth_source=ldap[ldap_auth]).search()
         for user in range(len(users)):
             users[user].delete()
         ldap[ldap_auth].delete()
     user_groups = entities.UserGroup().search()
     for user_group in user_groups:
         user_group.delete()
示例#28
0
    def test_positive_create_with_name(self):
        """Create new user group using different valid names

        @id: 3a2255d9-f48d-4f22-a4b9-132361bd9224

        @Assert: User group is created successfully.
        """
        for name in valid_data_list():
            with self.subTest(name):
                user_group = entities.UserGroup(name=name).create()
                self.assertEqual(user_group.name, name)
示例#29
0
    def test_positive_delete(self):
        """Create user group with valid name and then delete it

        @feature: Usergroup

        @assert: User group is deleted successfully
        """
        user_group = entities.UserGroup().create()
        user_group.delete()
        with self.assertRaises(HTTPError):
            user_group.read()
示例#30
0
    def test_positive_create_with_name(self):
        """Create new user group using different valid names

        @Feature: Usergroup

        @Assert: User group is created successfully.
        """
        for name in valid_data_list():
            with self.subTest(name):
                user_group = entities.UserGroup(name=name).create()
                self.assertEqual(user_group.name, name)