def test_skte_t4343_change_password(self): """ 修改用户密码 测试步骤: 1. 创建用户 2. 登录后修改密码 3. 使用新密码登录 4. 删除用户 """ new_password = '******' # 1.创建用户 uuid = send_user_m_req.create_user(self.token, username=config.user_name_tmp, password=config.user_passwd_tmp) # 2. 登录修改密码 token = send_user_m_req.get_token_simple( username=config.user_name_tmp, userpwd=config.user_passwd_tmp) resp = send_user_m_req.change_password( token, user_uuid=uuid, old_password=config.user_passwd_tmp, password=new_password) assert resp['uuid'] == uuid # 3. 使用新密码登录, 并查看用户详细 token = send_user_m_req.get_token_simple(config.user_name_tmp, userpwd=new_password) user_detail = send_user_m_req.get_user_detail(token, uuid) assert user_detail['uuid'] == uuid # 4. 删除用户 send_user_m_req.delete_user(self.token, uuid=uuid)
def test_skte_t1066_create_edit_delete_user(self): """ 该用例包含T1066,T1065, T1078,T1079. 测试步骤: 1. 创建用户 2. 查找新建用户 3. 编辑用户 4. 使用新用户创建多种任务 5. 删除用户 6. 检查共享任务是否存在 """ # 1.创建新用户 uuid = send_user_m_req.create_user(self.token, username=config.user_name_tmp, fullname=config.user_full_name_tmp, password=config.user_passwd_tmp) # 2. 查找新建用户 user_uuid = send_user_m_req.get_uuid_by_username( self.token, username=config.user_name_tmp) assert user_uuid == uuid # 3.编辑用户 user_update = send_user_m_req.edit_user(self.token, uuid, fullname='更新用户全名') assert user_update['fullName'] == '更新用户全名' # 4. 新用户登录创建多种任务 # TODO: 补充创建共享image,文件等项目 tmp_token = send_user_m_req.get_token_simple(config.user_name_tmp, config.user_passwd_tmp) users = send_user_m_req.get_uuid_list_by_users( token=tmp_token, users=[config.user_name_a]) send_project_m_req.create_project(tmp_token, project_name='T1079', users=users) # 5.删除新用户 send_user_m_req.delete_user(self.token, uuid=uuid) uuid = send_user_m_req.get_uuid_by_username( self.token, username=config.user_name_tmp) assert uuid == '' # 6. 使用被共享用户登录, 查看被删除用户共享任务是否存在 # TODO: 等待SDX功能完善, 修改判断条件 token = send_user_m_req.get_token_simple(config.user_name_a, config.user_passwd_a) project_list = send_project_m_req.get_project_list(token) if project_list['total'] > 0: items = project_list['data']['items'] for item in items: if item['owner'].get('username') == config.user_name_tmp: assert False assert True
def test_SKTE_T3802_delete_sharing_model(self): # Title: 删除共享模型 # PreCondition: 创建共享模型,并在共享用户查看该模型。 model_uuid = send_model_m_req.create_model(self.token, model_name='T3802', users=[config.user_name_b], share_type="PUBLIC", is_public=True) user_uuid_a = send_user_m_req.get_uuid_by_username( self.token, config.user_name_a) token_user_b = send_user_m_req.get_token_simple( config.user_name_b, config.user_passwd_b) user_uuid_b = send_user_m_req.get_uuid_by_username( token_user_b, config.user_name_b) send_model_m_req.get_model_info(self.token, model_uuid) send_model_m_req.get_model_info(token_user_b, model_uuid) # 1. 删除共享模型 send_model_m_req.delete_model(self.token, model_uuid) send_model_m_req.get_model_info(self.token, model_uuid, resultcode='404') # 2. 切换用户查看共享模型 send_model_m_req.get_model_info(token_user_b, model_uuid, resultcode='404')
def test_skte_t4342_reset_password(self): """ 重置用户密码 测试步骤: 1. 创建用户 2. 重置密码 3. 使用新密码登录 4. 删除用户 """ # 1.创建用户 uuid = send_user_m_req.create_user(self.token, username=config.user_name_tmp) # 2. 重置密码 resp = send_user_m_req.reset_password(self.token, user_uuid=uuid) # 3. 新用户登录, 并查看用户详细 tmp_token = send_user_m_req.get_token_simple(config.user_name_tmp, userpwd=resp['password']) user_detail = send_user_m_req.get_user_detail(tmp_token, uuid) assert user_detail['uuid'] == uuid # 4. 删除用户 send_user_m_req.delete_user(self.token, uuid=uuid)
def test_skte_t1023_t1030_share_and_cancel_files_in_bulk(self): target = config.ceph_path # 上传路径 filename1 = 'iris.csv' # 上传文件名称 file1 = '{}{}'.format(config.file_url, filename1) # 源文件及其路径 filePath1 = '{}{}'.format(target, filename1) # 上传后文件及其路径 filename2 = 'iris.txt' file2 = '{}{}'.format(config.file_url, filename2) filePath2 = '{}{}'.format(target, filename2) paths = [] paths.append(filePath1) paths.append(filePath2) # 上传文件用于共享/取消共享操作 send_file_m_req.upload_file(self.token, file1, target) send_file_m_req.upload_file(self.token, file2, target) # 共享文件给用户 uuid = get_uuid_from_token(self.token) # 文件所有者的uuid,同时也是文件共享者的uuid shareuser_token = send_user_m_req.get_token_simple( config.user_name_b, config.user_passwd_b) # 被共享用户的token sharer_uuid = get_uuid_from_token(shareuser_token) # 被共享用户的uuid share_uuid = send_file_m_req.share_files_batch(self.token, sharePaths=paths, owner_id=uuid, share_id=uuid, users=[sharer_uuid]) # 验证文件共享结果: 1)共享用户在“我的共享”文件夹下可看到共享文件 2)被共享用户在“接收的共享”文件夹下可看到被共享文件 my_share_file = send_file_m_req.get_shared_file_list( self.token, owner_id=uuid) # 共享用户查看"我的共享"文件夹,返回其下可查看到的文件列表 if filename1 and filename2 not in my_share_file: logger.log_error( 'user {} cannot find shared file {} and {}'.format( config.user_name_a, filename1, filename2)) assert False share_file_list = send_file_m_req.get_shared_file_list( shareuser_token, user_id=sharer_uuid) # 被共享用户查看"接收的共享",返回其下可查看到的文件列表 if filename1 and filename2 not in share_file_list: logger.log_error( 'user {} cannot find shared file {} and {}'.format( config.user_name_b, filename1, filename2)) assert False # 取消共享文件 send_file_m_req.cancel_shared_file(self.token, share_uuid) # 验证文件共享结果: 1)共享用户的“我的共享”文件夹下已移除共享文件 2)被共享用户已在“接收的共享”文件夹下移除被共享文件 my_share_file = send_file_m_req.get_shared_file_list( self.token, owner_id=uuid) # 共享用户查看"我的共享"文件夹,返回其下可查看到的文件列表 if filename1 and filename2 in my_share_file: logger.log_error( 'user {} should not find unshared file {} and {}'.format( config.user_name_a, filename1, filename2)) assert False share_file_list = send_file_m_req.get_shared_file_list( shareuser_token, user_id=sharer_uuid) # 被共享用户查看"接收的共享",返回其下可查看到的文件列表 if filename1 and filename2 in share_file_list: logger.log_error( 'user {} should not find unshared file {} and {}'.format( config.user_name_b, filename1, filename2)) assert False # 删除文件 send_file_m_req.delete_files_and_folders(self.token, paths)
def test_skte_t1072_create_user_with_diff_expire(self, test_data): """ 创建用户, 设置不同的有效期. 测试步骤: 1. 创建用户, 有效期为1天, 1周, 1月, 3月, 6月, 1年, 99年 2. 新用户登录, 查看有效期设置 3. 删除用户 """ expires = date_time.get_delta_datetime(**test_data) # 1.创建用户 uuid = send_user_m_req.create_user(self.token, username=config.user_name_tmp, fullname=config.user_full_name_tmp, password=config.user_passwd_tmp, expires=expires) # 2. 新用户登录, 并查看用户详细 tmp_token = send_user_m_req.get_token_simple(config.user_name_tmp, config.user_passwd_tmp) user_detail = send_user_m_req.get_user_detail(tmp_token, uuid) assert user_detail['expiresAt'] == expires # 3. 删除用户 send_user_m_req.delete_user(self.token, uuid=uuid)
def test_SKTE_T3720_share_model_and_cancel(self): # 创建模型 model_uuid = send_model_m_req.create_model(self.token, model_name='T3720 model') user_uuid = send_user_m_req.get_uuid_by_username( self.token, config.user_name_a) model_location = '{}:{}'.format(user_uuid, config.tf_model_location) # 添加模型版本 description = 'T3720 description' version_uuid = send_model_m_req.create_model_version( self.token, model_uuid, model_location, description)['uuid'] # 共享模型 send_model_m_req.share_model_and_cancel(token=self.token, uuid=model_uuid, share_type="PUBLIC", is_public=True) shareuser_token = send_user_m_req.get_token_simple( config.user_name_b, config.user_passwd_b) # 验证模型已共享,1)可查看该模型;2)可查看该模型版本 send_model_m_req.get_model_info(shareuser_token, model_uuid) send_model_m_req.get_model_version_info(shareuser_token, model_uuid, version_uuid) # 取消共享模型 send_model_m_req.share_model_and_cancel(token=self.token, uuid=model_uuid, share_type="PRIVATE", is_public=False) # 验证模型已取消共享,无权进入该模型 send_model_m_req.get_model_info(shareuser_token, model_uuid, '401') # 删除模型版本 send_model_m_req.delete_model_version(self.token, model_uuid, version_uuid) # 删除模型 send_model_m_req.delete_model(self.token, model_uuid)
def test_skte_t1074_active_user(self): """ 该用例包含T1074, T1075. 测试步骤: 1. 创建用户 2. 激活用户 3. 新用户登录 4. 取消激活用户 5. 用户再次登录 6. 删除用户 """ # 1.创建未激活用户 uuid = send_user_m_req.create_user(self.token, username=config.user_name_tmp, fullname=config.user_full_name_tmp, password=config.user_passwd_tmp, active=False) # 2.激活用户 user_update = send_user_m_req.edit_user(self.token, uuid, active=True) assert user_update['isActive'] is True # 3. 新用户登录, 并查看用户详细 tmp_token = send_user_m_req.get_token_simple(config.user_name_tmp, config.user_passwd_tmp) user_detail = send_user_m_req.get_user_detail(tmp_token, uuid) assert user_detail # 4. 取消激活用户 user_update = send_user_m_req.edit_user(self.token, uuid, active=False) assert user_update['isActive'] is False # 5. 用户再次登录 message = send_user_m_req.get_token_simple(config.user_name_tmp, config.user_passwd_tmp, return_code='403') assert message == 'user disabled' # 6. 删除用户 send_user_m_req.delete_user(self.token, uuid=uuid)
def test_skte_t1076_add_user_to_group(self): """ 该用例包含T1076, T1077. 测试步骤: 1. 创建用户组, 用户组角色包含user_role, admin_role 2. 创建用户,角色为user_role 3. 将新建用户添加到用户组 4. 用户登录, 有admin权限 5. 删除用户组 """ username = config.user_name_tmp + '_t1076' user_group = 'user_group_t1076' admin_group = 'admin_group_t1076' user_role_uuid = send_user_m_req.fetch_user_role_uuid_by_role_name( self.token, config.user_role_name) admin_role_uuid = send_user_m_req.fetch_user_role_uuid_by_role_name( self.token, config.admin_role_name) # 1. 创建用户组 user_group = send_user_m_req.create_user_group(self.token, user_group, role=[user_role_uuid]) admin_group = send_user_m_req.create_user_group( self.token, admin_group, role=[user_role_uuid, admin_role_uuid]) # 2. 新建用户, 该用户没有删除用户组权限 user_uuid = send_user_m_req.create_user( self.token, username=username, fullname=config.user_full_name_tmp, password=config.user_passwd_tmp) token = send_user_m_req.get_token_simple( username, userpwd=config.user_passwd_tmp) send_user_m_req.delete_user_group(token, user_group, return_code='403') # 3. 将用户添加到2个用户组 resp = send_user_m_req.add_user_to_groups( self.token, user_uuid, groups=[user_group, admin_group]) assert sorted(resp['groups']) == sorted([user_group, admin_group]) # 4. 新用户有删除用户组权限 send_user_m_req.delete_user_group(token, user_group) send_user_m_req.delete_user_group(self.token, admin_group) # 5. 删除创建的用户组和用户 send_user_m_req.delete_user(self.token, uuid=user_uuid)
def test_skte_t1014_t1029_share_and_cancel_file(self): filename = config.file_name # 上传文件名称 file = '{}{}'.format(config.file_url, filename) # 源文件及其路径 target = config.ceph_path # 上传路径 filePath = '{}{}'.format(target, filename) # 上传后文件及其路径 # 上传文件用于共享/取消共享操作 send_file_m_req.upload_file(self.token, file, target) # 共享文件给全局 uuid = get_uuid_from_token(self.token) # 文件所有者的uuid,同时也是文件共享者的uuid share_uuid = send_file_m_req.share_file(self.token, owner_uuid=uuid, sharePath=filePath, isGlobal=True) # 验证文件共享结果: 1)共享用户在“我的共享”文件夹下可看到共享文件 2)被共享用户在“接收的共享”文件夹下可看到被共享文件 my_share_file = send_file_m_req.get_shared_file_list( self.token, owner_id=uuid) # 共享用户查看"我的共享"文件夹,返回其下可查看到的文件列表 if filename not in my_share_file: logger.log_error('user {} cannot find shared file {}'.format( config.user_name_a, filename)) assert False shareuser_token = send_user_m_req.get_token_simple( config.user_name_b, config.user_passwd_b) # 被共享用户的token sharer_uuid = get_uuid_from_token(shareuser_token) # 被共享用户的uuid share_file_list = send_file_m_req.get_shared_file_list( shareuser_token, user_id=sharer_uuid) # 被共享用户查看"接收的共享",返回其下可查看到的文件列表 if filename not in share_file_list: logger.log_error('user {} cannot find shared file {}'.format( config.user_name_b, filename)) assert False # 取消共享文件 send_file_m_req.cancel_shared_file(self.token, share_uuid) # 验证文件共享结果: 1)共享用户的“我的共享”文件夹下已移除共享文件 2)被共享用户已在“接收的共享”文件夹下移除被共享文件 my_share_file = send_file_m_req.get_shared_file_list( self.token, owner_id=uuid) # 共享用户查看"我的共享"文件夹,返回其下可查看到的文件列表 if filename in my_share_file: logger.log_error('user {} should not find unshared file {}'.format( config.user_name_a, filename)) assert False share_file_list = send_file_m_req.get_shared_file_list( shareuser_token, user_id=sharer_uuid) # 被共享用户查看"接收的共享",返回其下可查看到的文件列表 if filename in share_file_list: logger.log_error('user {} should not find unshared file {}'.format( config.user_name_b, filename)) assert False # 删除文件 paths = [] paths.append(filePath) send_file_m_req.delete_files_and_folders(self.token, paths)
def test_SKTE_T3712_create_and_delete_collaborative_project(self): # 创建协作项目 uuid = send_user_m_req.get_uuid_by_username( self.token, config.collaborative_user) # 获取协作用户uuid joint_id = [] joint_id.append(uuid) res = send_project_m_req.create_project( self.token, project_name='T3712 auto test collaborative project', users=joint_id) # 获取协作项目uuid # 协作项目校验:协作用户可以进入协作项目页面,可以创建/删除、启停任务(任务部分待补充),不支持对协作项目进行写操作,如删除协作项目 joint_token = send_user_m_req.get_token_simple( config.collaborative_user, config.collaborative_userpwd) # 获取协作用户token send_project_m_req.entry_project_by_uuid(joint_token, res) # 协作用户可以进入协作项目页面 # send_project_m_req.delete_project_by_uuid(joint_token, res, '403') # 协作用户无权删除协作项目,实际测试不通过,可以通过接口删除 # 创建者删除协作项目 send_project_m_req.delete_project_by_uuid(self.token, res)
def setup_class(cls): super(TestFileDelete, cls).setup_class(logger_name='file_delete') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestFileUpload, cls).setup_class(logger_name='file_upload') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestFolderCreate, cls).setup_class(logger_name='folder_create') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestSkyFlow, cls).setup_class(logger_name='skyflow') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestGetImageList, cls).setup_class(logger_name='get_image_list') # cls.token = super(TestGetImageList, cls).token_simple() cls.token = send_user_m_req.get_token_simple()
def test_skte_t1082_add_roles_to_group(self): """ 该用例包含T1082, T1084, T1086, T1087 测试步骤: 1. 创建用户组, 用户组角色包含user_role, admin_role 2. 添加多个用户到用户组,用户有admin权限 3. 查看组内成员列表 4. 修改用户组,去除admin_role 5. 用户登录, 只有user_role权限 6. 删除用户组 """ group_name = 'group_t1082' new_group_name = 'new_group_t1082' user_role_uuid = send_user_m_req.fetch_user_role_uuid_by_role_name( self.token, config.user_role_name) admin_role_uuid = send_user_m_req.fetch_user_role_uuid_by_role_name( self.token, config.admin_role_name) # 1. 创建用户组 user_group = send_user_m_req.create_user_group( self.token, group_name, role=[user_role_uuid, admin_role_uuid]) user_a_uuid = send_user_m_req.get_uuid_by_username( self.token, config.user_name_a) user_b_uuid = send_user_m_req.get_uuid_by_username( self.token, config.user_name_b) # 2. 将用户添加到用户组 resp = send_user_m_req.add_user_to_groups(self.token, user_a_uuid, groups=[user_group]) assert resp['groups'] == [user_group] resp = send_user_m_req.add_user_to_groups(self.token, user_b_uuid, groups=[user_group]) assert resp['groups'] == [user_group] # 3. 查看用户组列表,用户有创建用户组权限 token = send_user_m_req.get_token_simple(username=config.user_name_a, userpwd=config.user_passwd_a) group_detail = send_user_m_req.get_user_group_detail(token, user_group) assert sorted(group_detail['users']) == sorted( [user_a_uuid, user_b_uuid]) tmp_group = send_user_m_req.create_user_group( token, group_name=new_group_name, role=[user_role_uuid]) # 4. 修改用户组, 去除admin角色 send_user_m_req.modify_user_group(self.token, user_group, roles=[user_role_uuid]) # 5. 用户没有创建删除用户组权限 send_user_m_req.delete_user_group(token, group_uuid=tmp_group, return_code='403') # 6. 使用admin删除创建的用户组 send_user_m_req.delete_user_group(self.token, tmp_group) send_user_m_req.delete_user_group(self.token, user_group)
def setup_class(cls): super(TestCreateModel, cls).setup_class(logger_name='model_creation') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestCreateProject, cls).setup_class(logger_name='container_dev') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestFileFolderRename, cls).setup_class(logger_name='file_folder_rename') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestCreateProject, cls).setup_class(logger_name='project_creation') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestZipFile, cls).setup_class(logger_name='zip_file') cls.token = send_user_m_req.get_token_simple()
def setup_class(cls): super(TestUserGroup, cls).setup_class(logger_name='user_group') cls.token = send_user_m_req.get_token_simple( config.user_sysadmin, config.user_passwd_sysadmin)
def setup_class(cls): super(TestUserManager, cls).setup_class(logger_name='user_manager') cls.token = send_user_m_req.get_token_simple( username=config.user_sysadmin, userpwd=config.user_passwd_sysadmin)
def setup_class(cls): super(TestResourceTemplate, cls).setup_class(logger_name='resource_template') cls.token = send_user_m_req.get_token_simple( config.user_sysadmin, config.user_passwd_sysadmin)