示例#1
0
    def test_update_with_keystone_can_edit_user_false(self):
        user = self.users.get(id="1")
        domain_id = user.domain_id
        domain = self.domains.get(id=domain_id)

        api.keystone.user_get(IsA(http.HttpRequest),
                              '1',
                              admin=True).AndReturn(user)
        api.keystone.domain_get(IsA(http.HttpRequest), domain_id) \
            .AndReturn(domain)
        api.keystone.tenant_list(IgnoreArg(), domain=domain_id, user=user.id) \
            .AndReturn([self.tenants.list(), False])
        api.keystone.keystone_can_edit_user().AndReturn(False)
        api.keystone.keystone_can_edit_user().AndReturn(False)

        self.mox.ReplayAll()

        formData = {'method': 'UpdateUserForm',
                    'id': user.id,
                    'name': user.name,
                    'project': self.tenant.id, }

        res = self.client.post(USER_UPDATE_URL, formData)

        self.assertNoFormErrors(res)
        self.assertMessageCount(error=1)
示例#2
0
    def test_get_update_form_init_values(self):
        user = self.users.get(id="1")
        domain_id = user.domain_id
        domain = self.domains.get(id=domain_id)

        api.keystone.user_get(IsA(http.HttpRequest), '1',
                              admin=True).AndReturn(user)
        api.keystone.domain_get(IsA(http.HttpRequest),
                                domain_id).AndReturn(domain)
        api.keystone.tenant_list(IgnoreArg(),
                                 domain=domain_id,
                                 user=user.id) \
            .AndReturn([self.tenants.list(), False])

        self.mox.ReplayAll()

        res = self.client.get(USER_UPDATE_URL)

        # Check that the form contains the default values as initialized by
        # the UpdateView
        self.assertEqual(res.context['form']['name'].value(), user.name)
        self.assertEqual(res.context['form']['email'].value(), user.email)
        self.assertEqual(res.context['form']['description'].value(),
                         user.description)
        self.assertEqual(res.context['form']['project'].value(),
                         user.project_id)
        self.assertEqual(res.context['form']['domain_id'].value(),
                         user.domain_id)
        self.assertEqual(res.context['form']['domain_name'].value(),
                         domain.name)
示例#3
0
    def test_router_delete(self):
        router = self.routers.first()
        tenants = self.tenants.list()
        api.neutron.router_list(IsA(http.HttpRequest)).AndReturn(
            self.routers.list())
        api.keystone.tenant_list(IsA(http.HttpRequest))\
            .AndReturn([tenants, False])
        self._mock_external_network_list()
        api.neutron.router_list(IsA(http.HttpRequest)).AndReturn(
            self.routers.list())
        api.keystone.tenant_list(IsA(http.HttpRequest))\
            .AndReturn([tenants, False])
        self._mock_external_network_list()
        api.neutron.port_list(IsA(http.HttpRequest),
                              device_id=router.id, device_owner=IgnoreArg())\
            .AndReturn([])
        api.neutron.router_delete(IsA(http.HttpRequest), router.id)
        api.neutron.router_list(IsA(http.HttpRequest)).AndReturn(
            self.routers.list())
        api.keystone.tenant_list(IsA(http.HttpRequest))\
            .AndReturn([tenants, False])
        self._mock_external_network_list()
        self.mox.ReplayAll()

        res = self.client.get(self.INDEX_URL)

        formData = {'action': 'routers__delete__' + router.id}
        res = self.client.post(self.INDEX_URL, formData, follow=True)
        self.assertNoFormErrors(res)
        self.assertMessageCount(response=res, success=1)
        self.assertIn('Deleted Router: ' + router.name,
                      res.content.decode('utf-8'))
示例#4
0
    def test_update_different_description(self):
        user = self.users.get(id="1")
        domain_id = user.domain_id
        domain = self.domains.get(id=domain_id)

        api.keystone.user_get(IsA(http.HttpRequest), '1',
                              admin=True).AndReturn(user)
        api.keystone.domain_get(IsA(http.HttpRequest),
                                domain_id).AndReturn(domain)
        api.keystone.tenant_list(IgnoreArg(),
                                 domain=domain_id,
                                 user=user.id) \
            .AndReturn([self.tenants.list(), False])
        api.keystone.user_update(IsA(http.HttpRequest),
                                 user.id,
                                 email=user.email,
                                 name=user.name,
                                 project=self.tenant.id,
                                 description='changed').AndReturn(None)

        self.mox.ReplayAll()

        formData = {'method': 'UpdateUserForm',
                    'id': user.id,
                    'name': user.name,
                    'description': 'changed',
                    'email': user.email,
                    'project': self.tenant.id}

        res = self.client.post(USER_UPDATE_URL, formData)

        self.assertNoFormErrors(res)
示例#5
0
    def test_delete_group(self):
        domain_id = self._get_domain_id()
        group = self.groups.get(id="2")

        domain = self.domains.get(id="1")
        api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain)
        api.keystone.group_list(IgnoreArg(), domain=domain_id) \
            .AndReturn(self.groups.list())
        api.keystone.group_delete(IgnoreArg(), group.id)

        self.mox.ReplayAll()

        formData = {'action': 'groups__delete__%s' % group.id}
        res = self.client.post(GROUPS_INDEX_URL, formData)

        self.assertRedirectsNoFollow(res, GROUPS_INDEX_URL)
示例#6
0
    def test_index_with_domain(self):
        domain = self.domains.get(id="1")

        self.setSessionValues(domain_context=domain.id,
                              domain_context_name=domain.name)
        groups = self._get_groups(domain.id)

        api.keystone.get_effective_domain_id(IgnoreArg()).AndReturn(domain.id)

        api.keystone.group_list(IsA(http.HttpRequest),
                                domain=domain.id).AndReturn(groups)

        self.mox.ReplayAll()

        res = self.client.get(GROUPS_INDEX_URL)

        self.assertTemplateUsed(res, constants.GROUPS_INDEX_VIEW_TEMPLATE)
        self.assertItemsEqual(res.context['table'].data, groups)
        if domain.id:
            for group in res.context['table'].data:
                self.assertItemsEqual(group.domain_id, domain.id)

        self.assertContains(res, 'Create Group')
        self.assertContains(res, 'Edit')
        self.assertContains(res, 'Delete Group')
示例#7
0
    def test_router_delete(self):
        router = self.routers.first()
        quota_data = self.neutron_quota_usages.first()
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id).AndReturn(
                                    self.routers.list())
        quotas.tenant_quota_usages(
            IsA(http.HttpRequest), targets=('routers', )) \
            .MultipleTimes().AndReturn(quota_data)
        api.neutron.is_extension_supported(IsA(http.HttpRequest),
                                           "router_availability_zone")\
            .MultipleTimes().AndReturn(True)
        self._mock_external_network_list()
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id).AndReturn(
                                    self.routers.list())
        self._mock_external_network_list()
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id).AndReturn(
                                    self.routers.list())
        self._mock_external_network_list()
        api.neutron.port_list(IsA(http.HttpRequest),
                              device_id=router.id, device_owner=IgnoreArg())\
            .AndReturn([])
        api.neutron.router_delete(IsA(http.HttpRequest), router.id)
        self.mox.ReplayAll()

        res = self.client.get(self.INDEX_URL)

        formData = {'action': 'routers__delete__' + router.id}
        res = self.client.post(self.INDEX_URL, formData, follow=True)
        self.assertNoFormErrors(res)
        self.assertMessageCount(response=res, success=1)
        self.assertIn('Deleted Router: ' + router.name,
                      res.content.decode('utf-8'))
示例#8
0
    def test_router_delete(self):
        router = self.routers.first()
        quota_data = self.quota_usages.first()
        quota_data['routers']['available'] = 5
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id,
                                search_opts=None).AndReturn(
                                    self.routers.list())
        quotas.tenant_quota_usages(
            IsA(http.HttpRequest)) \
            .MultipleTimes().AndReturn(quota_data)
        self._mock_external_network_list()
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id,
                                search_opts=None).AndReturn(
                                    self.routers.list())
        self._mock_external_network_list()
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=self.tenant.id,
                                search_opts=None).AndReturn(
                                    self.routers.list())
        self._mock_external_network_list()
        api.neutron.port_list(IsA(http.HttpRequest),
                              device_id=router.id, device_owner=IgnoreArg())\
            .AndReturn([])
        api.neutron.router_delete(IsA(http.HttpRequest), router.id)
        self.mox.ReplayAll()

        res = self.client.get(self.INDEX_URL)

        formData = {'action': 'Routers__delete__' + router.id}
        res = self.client.post(self.INDEX_URL, formData, follow=True)
        self.assertNoFormErrors(res)
        self.assertMessageCount(response=res, success=1)
        self.assertIn('Deleted Router: ' + router.name, res.content)
示例#9
0
    def test_index_with_domain_context(self):
        domain = self.domains.get(id="1")
        filters = {}
        self.setSessionValues(domain_context=domain.id,
                              domain_context_name=domain.name)

        domain_tenants = [
            tenant for tenant in self.tenants.list()
            if tenant.domain_id == domain.id
        ]

        api.keystone.tenant_list(IsA(http.HttpRequest),
                                 domain=domain.id,
                                 paginate=True,
                                 marker=None,
                                 filters=filters) \
                    .AndReturn([domain_tenants, False])
        api.keystone.domain_lookup(IgnoreArg()).AndReturn(
            {domain.id: domain.name})
        quotas.enabled_quotas(IsA(http.HttpRequest)).AndReturn(('instances', ))
        self.mox.ReplayAll()

        res = self.client.get(INDEX_URL)
        self.assertTemplateUsed(res, 'identity/projects/index.html')
        self.assertItemsEqual(res.context['table'].data, domain_tenants)
        self.assertContains(res, "<em>test_domain:</em>")
示例#10
0
    def _test_base_index(self):
        api.base.is_service_enabled(IsA(http.HttpRequest), IgnoreArg()) \
                .MultipleTimes().AndReturn(True)

        services = self.services.list()
        api.nova.service_list(IsA(http.HttpRequest)).AndReturn(services)

        api.neutron.is_extension_supported(IsA(http.HttpRequest),
                                           'agent').AndReturn(True)
        agents = self.agents.list()
        api.neutron.agent_list(IsA(http.HttpRequest)).AndReturn(agents)

        cinder_services = self.cinder_services.list()
        api.cinder.service_list(IsA(http.HttpRequest)).\
            AndReturn(cinder_services)

        heat_services = self.heat_services.list()
        api.heat.service_list(IsA(http.HttpRequest)).\
            AndReturn(heat_services)

        self.mox.ReplayAll()

        res = self.client.get(INDEX_URL)
        self.assertTemplateUsed(res, 'admin/info/index.html')

        return res
示例#11
0
文件: tests.py 项目: yhu6/stx-horizon
    def test_ajax_loading_instances(self):
        server = self.servers.first()
        flavor = self.flavors.list()[0]
        tenant = self.tenants.list()[0]
        api.nova.server_get(IsA(http.HttpRequest), server.id) \
            .AndReturn(objectify.objectify(server))
        api.nova.extension_supported('AdminActions', IsA(http.HttpRequest)) \
            .MultipleTimes().AndReturn(True)
        api.nova.extension_supported('Shelve', IsA(http.HttpRequest)) \
            .MultipleTimes().AndReturn(True)
        api.nova.flavor_get(IsA(http.HttpRequest),
                            server.flavor['id']).AndReturn(flavor)
        api.network.servers_update_addresses(IsA(http.HttpRequest),
                                             IgnoreArg())
        api.keystone.tenant_get(IsA(http.HttpRequest),
                                server.tenant_id,
                                admin=True).AndReturn(tenant)
        self.mox.ReplayAll()

        url = (INDEX_URL + "?action=row_update&table=instances&obj_id=" +
               server.id)

        res = self.client.get(url, {}, HTTP_X_REQUESTED_WITH='XMLHttpRequest')

        self.assertTemplateUsed(res, "horizon/common/_data_table_row.html")
        self.assertContains(res, "test_tenant", 1, 200)
        self.assertContains(res, "instance-host", 1, 200)
        # two instances of name, other name comes from row data-display
        self.assertContains(res, "server_1", 2, 200)
        self.assertContains(res, "10.0.0.1", 1, 200)
        self.assertContains(res, "RAM</th><td>512MB", 1, 200)
        self.assertContains(res, "VCPUs</th><td>1", 1, 200)
        self.assertContains(res, "Size</th><td>0 GB", 1, 200)
        self.assertContains(res, "Active", 1, 200)
        self.assertContains(res, "Running", 1, 200)
示例#12
0
    def test_delete_group(self):
        domain_id = self._get_domain_id()
        filters = {}
        group = self.groups.get(id="2")

        api.keystone.group_list(IgnoreArg(),
                                domain=domain_id,
                                filters=filters) \
            .AndReturn(self.groups.list())
        api.keystone.group_delete(IgnoreArg(), group.id)

        self.mox.ReplayAll()

        formData = {'action': 'groups__delete__%s' % group.id}
        res = self.client.post(GROUPS_INDEX_URL, formData)

        self.assertRedirectsNoFollow(res, GROUPS_INDEX_URL)
示例#13
0
文件: tests.py 项目: tiagoor/horizon
    def test_create(self):
        user = self.users.get(id="1")
        domain = self._get_default_domain()
        domain_id = domain.id

        role = self.roles.first()

        api.keystone.get_default_domain(IgnoreArg()) \
            .AndReturn(domain)
        api.keystone.get_default_domain(IgnoreArg(), False) \
            .AndReturn(domain)

        if api.keystone.VERSIONS.active >= 3:
            api.keystone.tenant_list(IgnoreArg(), domain=domain.id).AndReturn(
                [self.tenants.list(), False])
        else:
            api.keystone.tenant_list(IgnoreArg(), user=None).AndReturn(
                [self.tenants.list(), False])

        api.keystone.user_create(IgnoreArg(),
                                 name=user.name,
                                 description=user.description,
                                 email=user.email,
                                 password=user.password,
                                 project=self.tenant.id,
                                 enabled=True,
                                 domain=domain_id).AndReturn(user)
        api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
        api.keystone.get_default_role(IgnoreArg()).AndReturn(role)
        api.keystone.roles_for_user(IgnoreArg(), user.id, self.tenant.id)
        api.keystone.add_tenant_user_role(IgnoreArg(), self.tenant.id, user.id,
                                          role.id)

        self.mox.ReplayAll()

        formData = {
            'method': 'CreateUserForm',
            'domain_id': domain_id,
            'name': user.name,
            'description': user.description,
            'email': user.email,
            'password': user.password,
            'project': self.tenant.id,
            'role_id': self.roles.first().id,
            'enabled': True,
            'confirm_password': user.password
        }
        res = self.client.post(USER_CREATE_URL, formData)

        self.assertNoFormErrors(res)
        self.assertMessageCount(success=1)
示例#14
0
    def test_remove_user(self):
        group = self.groups.get(id="1")
        user = self.users.get(id="2")

        api.keystone.user_list(IgnoreArg(),
                               group=group.id).\
            AndReturn(self.users.list())
        api.keystone.remove_group_user(IgnoreArg(),
                                       group_id=group.id,
                                       user_id=user.id)
        self.mox.ReplayAll()

        formData = {'action': 'group_members__removeGroupMember__%s' % user.id}
        res = self.client.post(GROUP_MANAGE_URL, formData)

        self.assertRedirectsNoFollow(res, GROUP_MANAGE_URL)
        self.assertMessageCount(success=1)
示例#15
0
    def test_create_validation_for_password_too_long(self):
        user = self.users.get(id="1")
        domain = self._get_default_domain()
        domain_id = domain.id

        api.keystone.get_default_domain(IgnoreArg()) \
            .MultipleTimes().AndReturn(domain)

        if api.keystone.VERSIONS.active >= 3:
            api.keystone.tenant_list(
                IgnoreArg(), domain=domain_id).AndReturn(
                [self.tenants.list(), False])
        else:
            api.keystone.tenant_list(
                IgnoreArg(), user=None).AndReturn(
                [self.tenants.list(), False])

        api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
        api.keystone.get_default_role(IgnoreArg()) \
                    .AndReturn(self.roles.first())
        if django.VERSION >= (1, 9):
            if api.keystone.VERSIONS.active >= 3:
                api.keystone.tenant_list(
                    IgnoreArg(), domain=domain_id).AndReturn(
                    [self.tenants.list(), False])
            else:
                api.keystone.tenant_list(
                    IgnoreArg(), user=None).AndReturn(
                    [self.tenants.list(), False])

            api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
            api.keystone.get_default_role(IgnoreArg()) \
                .AndReturn(self.roles.first())

        self.mox.ReplayAll()

        # check password min-len verification
        formData = {'method': 'CreateUserForm',
                    'domain_id': domain_id,
                    'name': user.name,
                    'email': user.email,
                    'password': '******',
                    'project': self.tenant.id,
                    'role_id': self.roles.first().id,
                    'confirm_password': '******'}

        res = self.client.post(USER_CREATE_URL, formData)

        self.assertFormError(
            res, "form", 'password',
            ['Password must be between 8 and 18 characters.'])
示例#16
0
    def test_enable_disable_user_exception(self):
        domain = self._get_default_domain()
        domain_id = domain.id
        user = self.users.get(id="2")
        users = self._get_users(domain_id)
        user.enabled = False

        api.keystone.user_list(IgnoreArg(), domain=domain_id) \
            .AndReturn(users)
        api.keystone.user_update_enabled(IgnoreArg(), user.id, True) \
                    .AndRaise(self.exceptions.keystone)
        self.mox.ReplayAll()

        formData = {'action': 'users__toggle__%s' % user.id}
        res = self.client.post(USERS_INDEX_URL, formData)

        self.assertRedirectsNoFollow(res, USERS_INDEX_URL)
示例#17
0
    def test_delete_vip(self):
        pool = self.pools.first()
        vip = self.vips.first()
        api.lbaas.pool_list(
            IsA(http.HttpRequest), tenant_id=self.tenant.id) \
            .AndReturn(self.pools.list())
        api.lbaas.pool_get(IsA(http.HttpRequest), pool.id).AndReturn(pool)
        api.network.floating_ip_supported(IgnoreArg()).MultipleTimes() \
            .AndReturn(True)
        api.network.floating_ip_simple_associate_supported(IgnoreArg()) \
            .MultipleTimes().AndReturn(True)
        api.lbaas.vip_delete(IsA(http.HttpRequest), vip.id)
        self.mox.ReplayAll()

        form_data = {"action": "poolstable__deletevip__%s" % pool.id}
        res = self.client.post(self.INDEX_URL, form_data)

        self.assertNoFormErrors(res)
示例#18
0
文件: tests.py 项目: tiagoor/horizon
    def test_index(self):
        domain = self._get_default_domain()
        domain_id = domain.id
        users = self._get_users(domain_id)

        api.keystone.get_effective_domain_id(IgnoreArg()).AndReturn(domain_id)

        api.keystone.user_list(IgnoreArg(), domain=domain_id).AndReturn(users)
        api.keystone.domain_lookup(IgnoreArg()).AndReturn(
            {domain.id: domain.name})

        self.mox.ReplayAll()
        res = self.client.get(USERS_INDEX_URL)
        self.assertTemplateUsed(res, 'identity/users/index.html')
        self.assertItemsEqual(res.context['table'].data, users)

        if domain_id:
            for user in res.context['table'].data:
                self.assertItemsEqual(user.domain_id, domain_id)
示例#19
0
    def test_create_with_password_mismatch(self):
        user = self.users.get(id="1")
        domain = self._get_default_domain()
        domain_id = domain.id

        api.keystone.get_default_domain(IgnoreArg()) \
            .MultipleTimes().AndReturn(domain)

        if api.keystone.VERSIONS.active >= 3:
            api.keystone.tenant_list(
                IgnoreArg(), domain=domain_id).AndReturn(
                [self.tenants.list(), False])
        else:
            api.keystone.tenant_list(
                IgnoreArg(), user=None).AndReturn(
                [self.tenants.list(), False])

        api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
        api.keystone.get_default_role(IgnoreArg()) \
                    .AndReturn(self.roles.first())
        if django.VERSION >= (1, 9):
            if api.keystone.VERSIONS.active >= 3:
                api.keystone.tenant_list(
                    IgnoreArg(), domain=domain_id).AndReturn(
                    [self.tenants.list(), False])
            else:
                api.keystone.tenant_list(
                    IgnoreArg(), user=None).AndReturn(
                    [self.tenants.list(), False])

            api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())
            api.keystone.get_default_role(IgnoreArg()) \
                .AndReturn(self.roles.first())

        self.mox.ReplayAll()

        formData = {'method': 'CreateUserForm',
                    'domain_id': domain_id,
                    'name': user.name,
                    'email': user.email,
                    'password': user.password,
                    'project': self.tenant.id,
                    'role_id': self.roles.first().id,
                    'confirm_password': "******"}

        res = self.client.post(USER_CREATE_URL, formData)

        self.assertFormError(res, "form", None, ['Passwords do not match.'])
示例#20
0
    def test_disabling_current_user(self):
        domain = self._get_default_domain()
        domain_id = domain.id
        users = self._get_users(domain_id)
        for i in range(0, 2):
            api.keystone.user_list(IgnoreArg(), domain=domain_id) \
                .AndReturn(users)
            api.keystone.domain_lookup(IgnoreArg()).AndReturn(
                {domain.id: domain.name})

        self.mox.ReplayAll()

        formData = {'action': 'users__toggle__%s' % self.request.user.id}
        res = self.client.post(USERS_INDEX_URL, formData, follow=True)

        self.assertEqual(
            list(res.context['messages'])[0].message,
            u'You cannot disable the user you are currently '
            u'logged in as.')
示例#21
0
文件: tests.py 项目: tiagoor/horizon
    def test_delete_user_with_improper_permissions(self):
        domain = self._get_default_domain()
        domain_id = domain.id
        users = self._get_users(domain_id)
        for i in range(0, 2):
            api.keystone.user_list(IgnoreArg(), domain=domain_id) \
                .AndReturn(users)
            api.keystone.domain_lookup(IgnoreArg()).AndReturn(
                {domain.id: domain.name})

        self.mox.ReplayAll()

        formData = {'action': 'users__delete__%s' % self.request.user.id}
        res = self.client.post(USERS_INDEX_URL, formData, follow=True)

        self.assertEqual(
            list(res.context['messages'])[0].message,
            u'You are not allowed to delete user: %s' %
            self.request.user.username)
示例#22
0
    def test_enable_user(self):
        domain = self._get_default_domain()
        domain_id = domain.id
        user = self.users.get(id="2")
        users = self._get_users(domain_id)
        user.enabled = False

        api.keystone.domain_get(IsA(http.HttpRequest), '1').AndReturn(domain)
        api.keystone.user_list(IgnoreArg(), domain=domain_id).AndReturn(users)
        api.keystone.user_update_enabled(IgnoreArg(), user.id,
                                         True).AndReturn(user)
        api.keystone.domain_lookup(IgnoreArg()).AndReturn(
            {domain.id: domain.name})

        self.mox.ReplayAll()

        formData = {'action': 'users__toggle__%s' % user.id}
        res = self.client.post(USERS_INDEX_URL, formData)

        self.assertRedirectsNoFollow(res, USERS_INDEX_URL)
示例#23
0
    def test_index(self):
        api.keystone.mapping_list(IgnoreArg()). \
            AndReturn(self.idp_mappings.list())

        self.mox.ReplayAll()

        res = self.client.get(MAPPINGS_INDEX_URL)

        self.assertTemplateUsed(res, 'horizon/common/_data_table_view.html')
        self.assertItemsEqual(res.context['table'].data,
                              self.idp_mappings.list())
示例#24
0
文件: tests.py 项目: liova99/horizon
    def test_index(self):
        api.keystone.identity_provider_list(IgnoreArg()). \
            AndReturn(self.identity_providers.list())

        self.mox.ReplayAll()

        res = self.client.get(IDPS_INDEX_URL)

        self.assertTemplateUsed(res, 'identity/identity_providers/index.html')
        self.assertItemsEqual(res.context['table'].data,
                              self.identity_providers.list())
示例#25
0
    def test_delete_with_enabled_domain(self):
        domain = self.domains.get(id="1")

        api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list())

        self.mox.ReplayAll()

        formData = {'action': 'domains__delete__%s' % domain.id}
        res = self.client.post(DOMAINS_INDEX_URL, formData)

        self.assertRedirectsNoFollow(res, DOMAINS_INDEX_URL)
        self.assertMessageCount(error=2)
示例#26
0
    def test_index(self):
        api.keystone.domain_list(IgnoreArg()).AndReturn(self.domains.list())

        self.mox.ReplayAll()

        res = self.client.get(DOMAINS_INDEX_URL)

        self.assertTemplateUsed(res, constants.DOMAINS_INDEX_VIEW_TEMPLATE)
        self.assertItemsEqual(res.context['table'].data, self.domains.list())
        self.assertContains(res, 'Create Domain')
        self.assertContains(res, 'Edit')
        self.assertContains(res, 'Delete Domain')
示例#27
0
    def test_create(self):
        role = self.roles.first()

        api.keystone.role_create(IgnoreArg(), role.name).AndReturn(role)

        self.mox.ReplayAll()

        formData = {'method': 'CreateRoleForm', 'name': role.name}
        res = self.client.post(ROLES_CREATE_URL, formData)

        self.assertNoFormErrors(res)
        self.assertMessageCount(success=1)
示例#28
0
    def test_index(self):
        api.keystone.role_list(IgnoreArg()).AndReturn(self.roles.list())

        self.mox.ReplayAll()

        res = self.client.get(ROLES_INDEX_URL)
        self.assertContains(res, 'Create Role')
        self.assertContains(res, 'Edit')
        self.assertContains(res, 'Delete Role')

        self.assertTemplateUsed(res, 'identity/roles/index.html')
        self.assertItemsEqual(res.context['table'].data, self.roles.list())
示例#29
0
    def set_up_expect(self):
        # retrieve pools
        api.lbaas.pool_list(
            IsA(http.HttpRequest), tenant_id=self.tenant.id) \
            .AndReturn(self.pools.list())

        # retrieves members
        api.lbaas.member_list(
            IsA(http.HttpRequest), tenant_id=self.tenant.id) \
            .AndReturn(self.members.list())

        # retrieves monitors
        api.lbaas.pool_health_monitor_list(
            IsA(http.HttpRequest), tenant_id=self.tenant.id).MultipleTimes() \
            .AndReturn(self.monitors.list())

        api.network.floating_ip_supported(IgnoreArg()).MultipleTimes() \
            .AndReturn(True)

        api.network.floating_ip_simple_associate_supported(IgnoreArg()).MultipleTimes() \
            .AndReturn(True)
示例#30
0
    def test_update(self):
        user = self.users.get(id="1")
        domain_id = user.domain_id
        domain = self.domains.get(id=domain_id)
        phone_number = "+81-3-1234-5678"

        api.keystone.user_get(IsA(http.HttpRequest), '1',
                              admin=True).AndReturn(user)
        api.keystone.domain_get(IsA(http.HttpRequest),
                                domain_id).AndReturn(domain)

        if api.keystone.VERSIONS.active >= 3:
            api.keystone.tenant_list(IgnoreArg(), domain=domain.id).AndReturn(
                [self.tenants.list(), False])
        else:
            api.keystone.tenant_list(IgnoreArg(), user=user.id).AndReturn(
                [self.tenants.list(), False])

        kwargs = {'phone_num': phone_number}
        api.keystone.user_update(IsA(http.HttpRequest),
                                 user.id,
                                 email=user.email,
                                 name=user.name,
                                 **kwargs).AndReturn(None)

        self.mox.ReplayAll()

        formData = {
            'method': 'UpdateUserForm',
            'id': user.id,
            'name': user.name,
            'description': user.description,
            'email': user.email,
            'project': self.tenant.id,
            'phone_num': phone_number
        }
        res = self.client.post(USER_UPDATE_URL, formData)

        self.assertNoFormErrors(res)