Пример #1
0
 def test_modify_user_invalidates_cache(self, keystone_mock):
     fake_user = fakes.FakeUser('abc123', '*****@*****.**',
                                'abc123 name')
     # first cache an empty list
     keystone_mock.users.list.return_value = []
     self.assertEqual({}, self.cloud.get_user_cache())
     # now add one
     keystone_mock.users.list.return_value = [fake_user]
     keystone_mock.users.create.return_value = fake_user
     created = self.cloud.create_user(name='abc123 name',
                                      email='*****@*****.**')
     self.assertEqual(
         {
             'id': 'abc123',
             'name': 'abc123 name',
             'email': '*****@*****.**'
         }, created)
     # Cache should have been invalidated
     self.assertEqual({'abc123': fake_user}, self.cloud.get_user_cache())
     # Update and check to see if it is updated
     fake_user2 = fakes.FakeUser('abc123', 'abc123 name',
                                 '*****@*****.**')
     keystone_mock.users.update.return_value = fake_user2
     keystone_mock.users.list.return_value = [fake_user2]
     self.cloud.update_user('abc123', email='*****@*****.**')
     keystone_mock.users.update.assert_called_with(
         user=fake_user2, email='*****@*****.**')
     self.assertEqual({'abc123': fake_user2}, self.cloud.get_user_cache())
     # Now delete and ensure it disappears
     keystone_mock.users.list.return_value = []
     self.cloud.delete_user('abc123')
     self.assertEqual({}, self.cloud.get_user_cache())
     self.assertTrue(keystone_mock.users.delete.was_called)
Пример #2
0
 def test_delete_user(self, mock_keystone, mock_get_user, mock_get_by_id):
     mock_get_user.return_value = dict(id='123')
     fake_user = fakes.FakeUser('123', 'email', 'name')
     mock_get_by_id.return_value = fake_user
     self.assertTrue(self.op_cloud.delete_user('name'))
     mock_get_by_id.assert_called_once_with('123', normalize=False)
     mock_keystone.users.delete.assert_called_once_with(user=fake_user)
Пример #3
0
 def test_list_users(self, keystone_mock):
     fake_user = fakes.FakeUser('999', '', '')
     keystone_mock.users.list.return_value = [fake_user]
     users = self.cloud.list_users()
     self.assertEqual(1, len(users))
     self.assertEqual('999', users[0]['id'])
     self.assertEqual('', users[0]['name'])
     self.assertEqual('', users[0]['email'])
Пример #4
0
    def test_modify_user_invalidates_cache(self, keystone_mock):
        self.use_keystone_v2()
        fake_user = fakes.FakeUser('abc123', '*****@*****.**',
                                   'abc123 name')
        # first cache an empty list
        keystone_mock.users.list.return_value = []
        self.assertEqual([], self.cloud.list_users())
        # now add one
        keystone_mock.users.list.return_value = [fake_user]
        keystone_mock.users.create.return_value = fake_user
        created = self.cloud.create_user(name='abc123 name',
                                         email='*****@*****.**')
        self.assertEqual('abc123', created['id'])
        self.assertEqual('abc123 name', created['name'])
        self.assertEqual('*****@*****.**', created['email'])

        # Cache should have been invalidated
        users = self.cloud.list_users()
        self.assertEqual(1, len(users))
        self.assertEqual('abc123', users[0]['id'])
        self.assertEqual('abc123 name', users[0]['name'])
        self.assertEqual('*****@*****.**', users[0]['email'])

        # Update and check to see if it is updated
        fake_user2 = fakes.FakeUser('abc123',
                                    '*****@*****.**',
                                    'abc123 name')
        fake_user2_dict = meta.obj_to_dict(fake_user2)
        keystone_mock.users.update.return_value = fake_user2
        keystone_mock.users.list.return_value = [fake_user2]
        keystone_mock.users.get.return_value = fake_user2_dict
        self.cloud.update_user('abc123', email='*****@*****.**')
        keystone_mock.users.update.assert_called_with(
            user=fake_user2_dict, email='*****@*****.**')
        users = self.cloud.list_users()
        self.assertEqual(1, len(users))
        self.assertEqual('abc123', users[0]['id'])
        self.assertEqual('abc123 name', users[0]['name'])
        self.assertEqual('*****@*****.**', users[0]['email'])
        # Now delete and ensure it disappears
        keystone_mock.users.list.return_value = []
        self.cloud.delete_user('abc123')
        self.assertEqual([], self.cloud.list_users())
        self.assertTrue(keystone_mock.users.delete.was_called)
Пример #5
0
 def test_create_user_v2(self, mock_keystone, mock_api_version):
     mock_api_version.return_value = '2'
     name = 'Mickey Mouse'
     email = '*****@*****.**'
     password = '******'
     fake_user = fakes.FakeUser('1', email, name)
     mock_keystone.users.create.return_value = fake_user
     user = self.cloud.create_user(name=name, email=email,
                                   password=password)
     mock_keystone.users.create.assert_called_once_with(
         name=name, password=password, email=email, enabled=True,
     )
     self.assertEqual(name, user.name)
     self.assertEqual(email, user.email)
Пример #6
0
 def test_grant_both_project_and_domain(self, mock_keystone,
                                        mock_api_version):
     mock_api_version.return_value = '3'
     fake_user2 = fakes.FakeUser('12345',
                                 '*****@*****.**',
                                 'test',
                                 domain_id='default')
     mock_keystone.roles.list.return_value = [self.fake_role]
     mock_keystone.users.list.return_value = [self.fake_user, fake_user2]
     mock_keystone.projects.list.return_value = [self.fake_project]
     mock_keystone.domains.get.return_value = self.fake_domain
     self.assertTrue(
         self.op_cloud.grant_role(self.fake_role['name'],
                                  user=self.fake_user['name'],
                                  project=self.fake_project['id'],
                                  domain=self.fake_domain['name']))
Пример #7
0
 def test_create_user_v3(self, mock_keystone, mock_api_version):
     mock_api_version.return_value = '3'
     name = 'Mickey Mouse'
     email = '*****@*****.**'
     password = '******'
     domain_id = '456'
     description = 'fake-description'
     fake_user = fakes.FakeUser('1', email, name, description=description)
     mock_keystone.users.create.return_value = fake_user
     user = self.op_cloud.create_user(
         name=name, email=email,
         password=password,
         description=description,
         domain_id=domain_id)
     mock_keystone.users.create.assert_called_once_with(
         name=name, password=password, email=email,
         description=description, enabled=True,
         domain=domain_id
     )
     self.assertEqual(name, user.name)
     self.assertEqual(email, user.email)
     self.assertEqual(description, user.description)
Пример #8
0
 def test_update_user_password_v2(self, mock_keystone, mock_api_version):
     mock_api_version.return_value = '2'
     name = 'Mickey Mouse'
     email = '*****@*****.**'
     password = '******'
     domain_id = '1'
     user = {'id': '1', 'name': name, 'email': email}
     fake_user = fakes.FakeUser(**user)
     munch_fake_user = munch.Munch(user)
     mock_keystone.users.list.return_value = [fake_user]
     mock_keystone.users.get.return_value = fake_user
     mock_keystone.users.update.return_value = fake_user
     mock_keystone.users.update_password.return_value = fake_user
     user = self.cloud.update_user(name, name=name, email=email,
                                   password=password,
                                   domain_id=domain_id)
     mock_keystone.users.update.assert_called_once_with(
         user=munch_fake_user, name=name, email=email)
     mock_keystone.users.update_password.assert_called_once_with(
         user=munch_fake_user, password=password)
     self.assertEqual(name, user.name)
     self.assertEqual(email, user.email)
Пример #9
0
 def test_get_user_cache(self, keystone_mock):
     fake_user = fakes.FakeUser('999', '', '')
     keystone_mock.users.list.return_value = [fake_user]
     self.assertEqual({'999': fake_user}, self.cloud.get_user_cache())
Пример #10
0
 def setUp(self):
     super(TestRoleAssignment, self).setUp()
     self.fake_role = obj_to_dict(fakes.FakeRole('12345', 'test'))
     self.fake_user = obj_to_dict(
         fakes.FakeUser('12345',
                        '*****@*****.**',
                        'test',
                        domain_id='test-domain'))
     self.fake_group = obj_to_dict(
         fakes.FakeGroup('12345',
                         'test',
                         'test group',
                         domain_id='test-domain'))
     self.fake_project = obj_to_dict(
         fakes.FakeProject('12345', domain_id='test-domain'))
     self.fake_domain = obj_to_dict(
         fakes.FakeDomain('test-domain',
                          'test',
                          'test domain',
                          enabled=True))
     self.user_project_assignment = obj_to_dict({
         'role': {
             'id': self.fake_role['id']
         },
         'scope': {
             'project': {
                 'id': self.fake_project['id']
             }
         },
         'user': {
             'id': self.fake_user['id']
         }
     })
     self.group_project_assignment = obj_to_dict({
         'role': {
             'id': self.fake_role['id']
         },
         'scope': {
             'project': {
                 'id': self.fake_project['id']
             }
         },
         'group': {
             'id': self.fake_group['id']
         }
     })
     self.user_domain_assignment = obj_to_dict({
         'role': {
             'id': self.fake_role['id']
         },
         'scope': {
             'domain': {
                 'id': self.fake_domain['id']
             }
         },
         'user': {
             'id': self.fake_user['id']
         }
     })
     self.group_domain_assignment = obj_to_dict({
         'role': {
             'id': self.fake_role['id']
         },
         'scope': {
             'domain': {
                 'id': self.fake_domain['id']
             }
         },
         'group': {
             'id': self.fake_group['id']
         }
     })