def setup_function(): """ 这个文件下的每个测试运行之前,都会执行这个函数 """ clean_all()
def test_get_user_with_permission_and_group_by_id(): with get_session_local() as session: # simple user = generate_user() role = generate_role() permission1 = generate_permission() permission2 = generate_permission() session.add_all((user, role, permission1, permission2)) session.flush() session.add_all((generate_user2role(user.id, role.id), generate_permission2role(permission1.id, role.id), generate_permission2role(permission2.id, role.id))) session.commit() user = get_user_with_permission_and_group_by_id(session, user.id) assert user is not None assert user.permission_set == {permission1.name, permission2.name} assert user.role_set == {role.name} clean_all() with get_session_local() as session: # more group and permission user = generate_user() role1 = generate_role() role2 = generate_role() permission1 = generate_permission() permission2 = generate_permission() permission3 = generate_permission() session.add_all( (user, role1, role2, permission1, permission2, permission3)) session.flush() session.add_all((generate_user2role(user.id, role1.id), generate_user2role(user.id, role2.id), generate_permission2role(permission1.id, role1.id), generate_permission2role(permission2.id, role1.id), generate_permission2role(permission3.id, role2.id))) session.commit() user = get_user_with_permission_and_group_by_id(session, user.id) assert user is not None assert user.permission_set == { permission1.name, permission2.name, permission3.name } assert user.role_set == {role1.name, role2.name} clean_all() with get_session_local() as session: # has group, no permission user = generate_user() role1 = generate_role() role2 = generate_role() session.add_all((user, role1, role2)) session.flush() session.add_all(( generate_user2role(user.id, role1.id), generate_user2role(user.id, role2.id), )) session.commit() user = get_user_with_permission_and_group_by_id(session, user.id) assert user is not None assert len(user.permission_set) == 0 assert user.role_set == {role1.name, role2.name} clean_all() with get_session_local() as session: # no group, no permission user = generate_user() session.add(user) session.commit() user = get_user_with_permission_and_group_by_id(session, user.id) assert user is not None assert len(user.permission_set) == 0 assert len(user.role_set) == 0