# Pastebin Btix4cVS def test_modify_user_invalidates_cache(self): self.use_keystone_v2() user_data = self._get_user_data(email='test@example.com') self.register_uri( 'GET', self.get_mock_url( service_type='identity', interface='admin', resource='users'), status_code=200, json={'users': []}) # first cache an empty list self.assertEqual([], self.cloud.list_users()) # now add one self.register_uri( 'POST', self.get_mock_url( service_type='identity', interface='admin', resource='users'), status_code=204, json=user_data.json_response, validate=user_data.json_request) self.register_uri( 'GET', self.get_mock_url( service_type='identity', interface='admin', resource='users', append=[user_data.user_id]), status_code=200, json=user_data.json_response) created = self.cloud.create_user(name=user_data.name, email=user_data.email) self.assertEqual(user_data.user_id, created['id']) self.assertEqual(user_data.name, created['name']) self.assertEqual(user_data.email, created['email']) self.register_uri( 'GET', self.get_mock_url( service_type='identity', interface='admin', resource='users'), status_code=200, json={'users': [user_data.json_response['user']]} ) # Cache should have been invalidated users = self.cloud.list_users() self.assertEqual(1, len(users)) self.assertEqual(user_data.user_id, users[0]['id']) self.assertEqual(user_data.name, users[0]['name']) self.assertEqual(user_data.email, users[0]['email']) # Update and check to see if it is updated new_resp = user_data.json_response.copy() new_resp['email'] = 'Nope@Nope.Nope' new_req = {'user': {'email': new_resp['email']}} self.register_uri( 'POST', self.get_mock_url( service_type='identity', interface='admin', resource='users'), status_code=204, json=new_resp.json_response, validate=new_req) self.register_uri( 'GET', self.get_mock_url( service_type='identity', interface='admin', resource='users', append=[user_data.user_id]), status_code=200, json=new_resp) updated = self.cloud.update_user(user_data.user_id, email=new_resp['email']) self.assertEqual(user_data.user_id, updated.id) self.assertEqual(user_data.name, updated.name) self.assertEqual(new_resp['email'], updated.email) users = self.cloud.list_users() self.assertEqual(1, len(users)) self.assertEqual(user_data.user_id, users[0]['id']) self.assertEqual(user_data.name, users[0]['name']) self.assertEqual(new_resp['email'], users[0]['email']) # Now delete and ensure it disappears self.register_uri( 'DELETE', self.get_mock_url( service_type='identity', interface='admin', resource='users', append=[user_data.user_id]), status_code=204) self.register_uri( 'GET', self.get_mock_url( service_type='identity', interface='admin', resource='users'), status_code=200, json={'users': []}) self.cloud.delete_user(user_data.user_id) self.assertEqual([], self.cloud.list_users())