XXX2 #2

Open
floraachy wants to merge 9 commits from master into dev
4 changed files with 343 additions and 321 deletions

103
README.md
View File

@@ -1,2 +1,103 @@
# openTT
# 2024.09.05.
日小结
<a id="top"></a>
根据[ego模型时间接口](https://gitee.com/hyg/blog/blob/master/timeflow.md)九月补足前两月缺勤。今天绑定模版2(2a)。
<a id="index"></a>
- 07:45~12:14 PSMD: [整理近期讨论按照新版manifest text提炼几个有代表性的场景。](#20240905074500)
- 14:00~14:00 PSMD: [整理新版本term的manifest code](#20240905140000)
- 16:00~16:29 learn: [https://proto.school/merkle-dags IPLD,Merkle DAGs, Structuring Data for the Distributed Web](#20240905160000)
---
season stat:
| task | alloc | sold | hold | todo |
| :---: | ---: | ---: | ---: | ---: |
| total | 17700 | 14071 | 3629 | 4665 |
| PSMD | 7000 | 5477 | 1523 | 990 |
| ego | 4000 | 2206 | 1794 | 795 |
| infra | 2000 | 305 | 1695 | 210 |
| xuemen | 1500 | 241 | 1259 | 510 |
| raw | 500 | 1415 | -915 | 480 |
| learn | 1500 | 2409 | -909 | 960 |
| js | 1200 | 2018 | -818 | 720 |
---
waiting list:
- 30分钟时间片
- ego的第1号事项新版本任务、子任务的数据结构
- xuemen的第1号事项整理财务报表
- xuemen的第2号事项月初财务工作
- 60分钟时间片
- infra的第1号事项动态菜单设计。
- js的第1号事项js class
- learn的第1号事项https://proto.school/merkle-dags IPLD,Merkle DAGs, Structuring Data for the Distributed Web
- ego的第2号事项schema manifest code v0
- 90分钟时间片
- PSMD的第1号事项整理default模型
- raw的第1号事项整理代码理顺food.js几个成员函数之间的调用关系
- infra的第3号事项schema立项。
- PSMD的第4号事项整理近期讨论按照新版manifest text提炼几个有代表性的场景。
- 195分钟时间片
- PSMD的第2号事项machines model
- xuemen的第3号事项kernel模型升级
- ego的第4号事项新版ego, instance or model, any manifest
- xuemen的第4号事项重新设计S2状态下的学门基本管理制度
---
<a href="mailto:huangyg@mars22.com?subject=关于2024.09.05.[整理近期讨论按照新版manifest text提炼几个有代表性的场景。]任务&body=日期: 2024.09.05.%0D%0A序号: 5%0D%0A手稿:../../draft/2024/09/20240905074500.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20240905074500"></a>
## 07:45 ~ 12:14
## 7:45~10:59
PSMD: [整理近期讨论按照新版manifest text提炼几个有代表性的场景。]
- 代理人合作协议V1.2草稿
- D:\huangyg\家庭\黄勇华\2024.09.05\2024.09.05.md
- 还需要缓一缓。
---
- 以下是2024.09.30.根据手稿统一整理。
- 条件使用入门目录中的localid
- 1.如果工作中不能按照附件20核实情况也不能按照附件21提供依据。
- 3.如果符合附件20、21。如果不符合附件30。
- 4.2.如果符合附件20、21。如果符合附件30但是不全符合附件31、附件32、附件33、附件34。如果符合附件42、不符合附件43。
- 4.4.如果符合附件20、21。如果符合附件30但是不全符合附件31、附件32、附件33、附件34。如果附件42、附件43都不符合。
- 5.4.如果符合附件20、21。如果符合附件30也全部符合附件31、附件32、附件33、附件34。如果不符合附件42、符合附件43。
- 建议在业务背景下基于既成事实博弈。具体可以参考default标准模型。
- 在这套前提条件下:
### default
- 主要靠直接的零售加批发,款到发货;
- 现在还很抵触(恐惧)共同的书面记录和计划,所以不能建立更复杂的合作;
- 生活上要严格控制支出,不要透支健康。
- 我的接口:
- 按照已经符合dbe32f79、d0111eb4讨论
- 遇到不诚实以dbe32f79、d0111eb4为标准指出并提醒请就近寻找诚实正直的朋友互相监督
- 达到一定次数不纠正,就认为内心其实已经放弃。
---
<a href="mailto:huangyg@mars22.com?subject=关于2024.09.05.[整理新版本term的manifest code]任务&body=日期: 2024.09.05.%0D%0A序号: 7%0D%0A手稿:../../draft/2024/09/20240905140000.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20240905140000"></a>
## 14:00 ~ 14:00
## 14:00~15:29
PSMD: [整理新版本term的manifest code]
- 继续追加时间。
---
<a href="mailto:huangyg@mars22.com?subject=关于2024.09.05.[https://proto.school/merkle-dags IPLD,Merkle DAGs, Structuring Data for the Distributed Web]任务&body=日期: 2024.09.05.%0D%0A序号: 9%0D%0A手稿:../../draft/2024/09/20240905160000.md%0D%0A---请勿修改邮件主题及以上内容 从下一行开始写您的想法---%0D%0A">[email]</a> | [top](#top) | [index](#index)
<a id="20240905160000"></a>
## 16:00 ~ 16:29
## 16:00~16:59
learn: [https://proto.school/merkle-dags IPLD,Merkle DAGs, Structuring Data for the Distributed Web]
- 继续追加时间。

34
add.txt Normal file
View File

@@ -0,0 +1,34 @@
新版tpi改动的文件
Index.js
contex/TPIContextProvider.js
page/main/LeftViewContainer.js
taskList/TaskList.js
TPMIndexHOC.js
App.js
CodeRepositoryViewContainer.js
Index.js
choose={context.chooses}
TPIContextProvider.js
LeftViewContainer.js
TaskList.js
TPMIndexHOC.js
MainContentContainer
rep_content返回值多了一层 {content: '...'}
TODO
待同步
1、timer图标样式更换
index.html
WebSSHTimer.css
WebSSHTimer.js

View File

@@ -1,207 +1,207 @@
# -*- coding: utf-8 -*-
# @Version: Python 3.9
# @Time : 2023/1/9 17:08
# @Author : chenyinhua
# @File : settings.py
# @Software: PyCharm
# @Desc: 项目配置文件
import os
# 定义一个全局变量,用于存储运行过程中相关数据
GLOBAL_VARS = {}
# 定义一个变量。存储自定义的标记markers
CUSTOM_MARKERS = []
REPORT = {
"报告标题": "API 自动化测试报告",
"项目名称": "GitLink 确实开源",
"tester": "陈银花",
"department": "开源中心",
"env": ""
}
# ------------------------------------ pytest相关配置 ----------------------------------------------------#
# 失败重跑次数
RERUN = 0
# 失败重跑间隔时间
RERUN_DELAY = 5
# 当达到最大失败数,停止执行
MAX_FAIL = "100"
# ------------------------------------ 配置信息 ----------------------------------------------------#
# 1 代表 yaml文件其他数值将不自动生成用例仅能执行手动编写的用例
CASE_FILE_TYPE = 1
# 0表示默认不发送任何通知 1 代表钉钉通知2 代表企业微信通知, 3 代表邮件通知, 4 代表所有途径都发送通知
SEND_RESULT_TYPE = 0
# 指定日志收集级别
LOG_LEVEL = "DEBUG" # 可选值TRACE DEBUG INFO SUCCESS WARNING ERROR CRITICAL
"""
支持的日志级别:
TRACE: 最低级别的日志级别,用于详细追踪程序的执行。
DEBUG: 用于调试和开发过程中打印详细的调试信息。
INFO: 提供程序执行过程中的关键信息。
SUCCESS: 用于标记成功或重要的里程碑事件。
WARNING: 表示潜在的问题或不符合预期的情况,但不会导致程序失败。
ERROR: 表示错误和异常情况,但程序仍然可以继续运行。
CRITICAL: 表示严重的错误和异常情况,可能导致程序崩溃或无法正常运行。
"""
# ------------------------------------ 邮件配置信息 ----------------------------------------------------#
# 发送邮件的相关配置信息
email = {
"user": "****email-user****", # 发件人邮箱
"password": "****email-password****", # 发件人邮箱授权码
"host": "smtp.qq.com",
"to": ["****email-user-1****", "****email-user-2****"] # 收件人邮箱
}
# ------------------------------------ 邮件通知内容 ----------------------------------------------------#
email_subject = f"UI自动化报告"
email_content = """
各位同事, 大家好:
自动化用例于 <strong>${start_time} </strong> 开始运行,运行时长:<strong>${run_time} s</strong> 目前已执行完成。
---------------------------------------------------------------------------------------------------------------
测试人:<strong> ${tester} </strong>
所属部门:<strong> ${department} </strong>
项目环境:<strong> ${env} </strong>
---------------------------------------------------------------------------------------------------------------
执行结果如下:
&nbsp;&nbsp;用例运行总数:<strong> ${total} 个</strong>
&nbsp;&nbsp;通过用例个数passed: <strong><font color="green" >${passed} 个</font></strong>
&nbsp;&nbsp;失败用例个数failed: <strong><font color="red" >${failed} 个</font></strong>
&nbsp;&nbsp;异常用例个数error: <strong><font color="orange" >${broken} 个</font></strong>
&nbsp;&nbsp;跳过用例个数skipped: <strong><font color="grey" >${skipped} 个</font></strong>
&nbsp;&nbsp;失败重试用例个数 * 次数之和rerun: <strong>${rerun} 个</strong>
&nbsp;&nbsp;成 功 率:<strong> <font color="green" >${pass_rate} %</font></strong>
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 钉钉相关配置 ----------------------------------------------------#
ding_talk = {
"webhook_url": "https://oapi.dingtalk.com/robot/send?access_token=********",
"secret": "****ding****"
}
# ------------------------------------ 钉钉通知内容 ----------------------------------------------------#
ding_talk_title = f"UI自动化报告"
ding_talk_content = """
各位同事, 大家好:
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s 目前已执行完成。
---------------------------------------------------------------------------------------------------------------
#### 测试人: ${tester}
#### 所属部门: ${department}
#### 项目环境: ${env}
---------------------------------------------------------------------------------------------------------------
#### 执行结果如下:
- 用例运行总数: ${total}
- 通过用例个数passed: ${passed}
- 失败用例个数failed: ${failed}
- 异常用例个数error: ${broken}
- 跳过用例个数skipped: ${skipped}
- 失败重试用例个数 * 次数之和rerun: ${rerun}
- 成 功 率: ${pass_rate} %
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 企业微信相关配置 ----------------------------------------------------#
wechat = {
"webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********",
}
# ------------------------------------ 企业微信通知内容 ----------------------------------------------------#
wechat_content = """
各位同事, 大家好:
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s 目前已执行完成。
--------------------------------
#### 测试人: ${tester}
#### 所属部门: ${department}
#### 项目环境: ${env}
--------------------------------
#### 执行结果如下:
- 用例运行总数: ${total}
- 通过用例个数passed:<font color=\"info\"> ${passed} 个</font>
- 失败用例个数failed: <font color=\"warning\"> ${failed} 个</font>
- 异常用例个数error: <font color=\"warning\"> ${broken} 个</font>
- 跳过用例个数skipped: <font color=\"comment\"> ${skipped} 个</font>
- 失败重试用例个数 * 次数之和rerun: <font color=\"comment\"> ${rerun} 个</font>
- 成 功 率: <font color=\"info\"> ${pass_rate} % </font>
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 项目路径 ----------------------------------------------------#
# 项目根目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 通用模块目录
UTILS_DIR = os.path.join(BASE_DIR, "utils")
# 配置文件目录
ENV_DIR = os.path.join(BASE_DIR, "env")
# 接口数据模块目录
INTERFACE_DIR = os.path.join(BASE_DIR, "interface")
# gitlink测试数据模块目录
GITLINK_DIR = os.path.join(INTERFACE_DIR, "gitlink")
# osredm测试数据模块目录
OSREDM_DIR = os.path.join(INTERFACE_DIR, "osredm")
# pms测试数据模块目录
PMS_DIR = os.path.join(INTERFACE_DIR, "pms")
# glcc测试数据模块目录
GLCC_DIR = os.path.join(INTERFACE_DIR, "glcc")
# 测试文件模块目录
FILES_DIR = os.path.join(BASE_DIR, "files")
# 第三方库目录
LIB_DIR = os.path.join(BASE_DIR, "lib")
# 日志/报告保存目录
OUT_DIR = os.path.join(BASE_DIR, "outputs")
if not os.path.exists(OUT_DIR):
os.mkdir(OUT_DIR)
# 报告保存目录
REPORT_DIR = os.path.join(OUT_DIR, "report")
if not os.path.exists(REPORT_DIR):
os.mkdir(REPORT_DIR)
# 报日志保存目录
LOG_DIR = os.path.join(OUT_DIR, "log")
if not os.path.exists(LOG_DIR):
os.mkdir(LOG_DIR)
# 测试用例模块
CASE_DIR = os.path.join(BASE_DIR, "test_case")
# 手动生成测试用例模块
MANUAL_CASE_DIR = os.path.join(CASE_DIR, "test_manual_case")
if not os.path.exists(MANUAL_CASE_DIR):
os.mkdir(MANUAL_CASE_DIR)
# 自动生成测试用例模块
AUTO_CASE_DIR = os.path.join(CASE_DIR, "test_auto_case")
# Allure报告测试结果集目录
ALLURE_RESULTS_DIR = os.path.join(REPORT_DIR, "allure_results")
# Allure报告HTML测试报告目录
ALLURE_HTML_DIR = os.path.join(REPORT_DIR, "allure_html")
# Allure报告配置文件目录
ALLURE_CONFIG_DIR = os.path.join(LIB_DIR, "allure_config")
# -*- coding: utf-8 -*-
# @Version: Python 3.9
# @Time : 2023/1/9 17:08
# @Author : chenyi11nhua
# @File : settings.py
# @Software: PyCharm
# @Desc: 项目配置文件
import os
# 定义一个全局变量,用于存储运行过程中相关数据
GLOBAL_VARS = {}
# 定义一个变量。存储自定义的标记markers
CUSTOM_MARKERS = []
REPORT = {
"报告标题": "API 自动化测试报告",
"项目名称": "GitLink 确实开源",
"tester": "陈银花",
"department": "开源中心",
"env": ""
}
# ------------------------------------ pytest相关配置 ----------------------------------------------------#
# 失败重跑次数
RERUN = 0
# 失败重跑间隔时间
RERUN_DELAY = 5
# 当达到最大失败数,停止执行
MAX_FAIL = "100"
# ------------------------------------ 配置信息 ----------------------------------------------------#
# 1 代表 yaml文件其他数值将不自动生成用例仅能执行手动编写的用例
CASE_FILE_TYPE = 1
# 0表示默认不发送任何通知 1 代表钉钉通知2 代表企业微信通知, 3 代表邮件通知, 4 代表所有途径都发送通知
SEND_RESULT_TYPE = 0
# 指定日志收集级别
LOG_LEVEL = "DEBUG" # 可选值TRACE DEBUG INFO SUCCESS WARNING ERROR CRITICAL
"""
支持的日志级别:
TRACE: 最低级别的日志级别,用于详细追踪程序的执行。
DEBUG: 用于调试和开发过程中打印详细的调试信息。
INFO: 提供程序执行过程中的关键信息。
SUCCESS: 用于标记成功或重要的里程碑事件。
WARNING: 表示潜在的问题或不符合预期的情况,但不会导致程序失败。
ERROR: 表示错误和异常情况,但程序仍然可以继续运行。
CRITICAL: 表示严重的错误和异常情况,可能导致程序崩溃或无法正常运行。
"""
# ------------------------------------ 邮件配置信息 ----------------------------------------------------#
# 发送邮件的相关配置信息
email = {
"user": "****email-user****", # 发件人邮箱
"password": "****email-password****", # 发件人邮箱授权码
"host": "smtp.qq.com",
"to": ["****email-user-1****", "****email-user-2****"] # 收件人邮箱
}
# ------------------------------------ 邮件通知内容 ----------------------------------------------------#
email_subject = f"UI自动化报告"
email_content = """
各位同事, 大家好:
自动化用例于 <strong>${start_time} </strong> 开始运行,运行时长:<strong>${run_time} s</strong> 目前已执行完成。
---------------------------------------------------------------------------------------------------------------
测试人:<strong> ${tester} </strong>
所属部门:<strong> ${department} </strong>
项目环境:<strong> ${env} </strong>
---------------------------------------------------------------------------------------------------------------
执行结果如下:
&nbsp;&nbsp;用例运行总数:<strong> ${total} 个</strong>
&nbsp;&nbsp;通过用例个数passed: <strong><font color="green" >${passed} 个</font></strong>
&nbsp;&nbsp;失败用例个数failed: <strong><font color="red" >${failed} 个</font></strong>
&nbsp;&nbsp;异常用例个数error: <strong><font color="orange" >${broken} 个</font></strong>
&nbsp;&nbsp;跳过用例个数skipped: <strong><font color="grey" >${skipped} 个</font></strong>
&nbsp;&nbsp;失败重试用例个数 * 次数之和rerun: <strong>${rerun} 个</strong>
&nbsp;&nbsp;成 功 率:<strong> <font color="green" >${pass_rate} %</font></strong>
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 钉钉相关配置 ----------------------------------------------------#
ding_talk = {
"webhook_url": "https://oapi.dingtalk.com/robot/send?access_token=********",
"secret": "****ding****"
}
# ------------------------------------ 钉钉通知内容 ----------------------------------------------------#
ding_talk_title = f"UI自动化报告"
ding_talk_content = """
各位同事, 大家好:
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s 目前已执行完成。
---------------------------------------------------------------------------------------------------------------
#### 测试人: ${tester}
#### 所属部门: ${department}
#### 项目环境: ${env}
---------------------------------------------------------------------------------------------------------------
#### 执行结果如下:
- 用例运行总数: ${total}
- 通过用例个数passed: ${passed}
- 失败用例个数failed: ${failed}
- 异常用例个数error: ${broken}
- 跳过用例个数skipped: ${skipped}
- 失败重试用例个数 * 次数之和rerun: ${rerun}
- 成 功 率: ${pass_rate} %
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 企业微信相关配置 ----------------------------------------------------#
wechat = {
"webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********",
}
# ------------------------------------ 企业微信通知内容 ----------------------------------------------------#
wechat_content = """
各位同事, 大家好:
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s 目前已执行完成。
--------------------------------
#### 测试人: ${tester}
#### 所属部门: ${department}
#### 项目环境: ${env}
--------------------------------
#### 执行结果如下:
- 用例运行总数: ${total}
- 通过用例个数passed:<font color=\"info\"> ${passed} 个</font>
- 失败用例个数failed: <font color=\"warning\"> ${failed} 个</font>
- 异常用例个数error: <font color=\"warning\"> ${broken} 个</font>
- 跳过用例个数skipped: <font color=\"comment\"> ${skipped} 个</font>
- 失败重试用例个数 * 次数之和rerun: <font color=\"comment\"> ${rerun} 个</font>
- 成 功 率: <font color=\"info\"> ${pass_rate} % </font>
**********************************
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
"""
# ------------------------------------ 项目路径 ----------------------------------------------------#
# 项目根目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 通用模块目录
UTILS_DIR = os.path.join(BASE_DIR, "utils")
# 配置文件目录
ENV_DIR = os.path.join(BASE_DIR, "env")
# 接口数据模块目录
INTERFACE_DIR = os.path.join(BASE_DIR, "interface")
# gitlink测试数据模块目录
GITLINK_DIR = os.path.join(INTERFACE_DIR, "gitlink")
# osredm测试数据模块目录
OSREDM_DIR = os.path.join(INTERFACE_DIR, "osredm")
# pms测试数据模块目录
PMS_DIR = os.path.join(INTERFACE_DIR, "pms")
# glcc测试数据模块目录
GLCC_DIR = os.path.join(INTERFACE_DIR, "glcc")
# 测试文件模块目录
FILES_DIR = os.path.join(BASE_DIR, "files")
# 第三方库目录
LIB_DIR = os.path.join(BASE_DIR, "lib")
# 日志/报告保存目录
OUT_DIR = os.path.join(BASE_DIR, "outputs")
if not os.path.exists(OUT_DIR):
os.mkdir(OUT_DIR)
# 报告保存目录
REPORT_DIR = os.path.join(OUT_DIR, "report")
if not os.path.exists(REPORT_DIR):
os.mkdir(REPORT_DIR)
# 报日志保存目录
LOG_DIR = os.path.join(OUT_DIR, "log")
if not os.path.exists(LOG_DIR):
os.mkdir(LOG_DIR)
# 测试用例模块
CASE_DIR = os.path.join(BASE_DIR, "test_case")
# 手动生成测试用例模块
MANUAL_CASE_DIR = os.path.join(CASE_DIR, "test_manual_case")
if not os.path.exists(MANUAL_CASE_DIR):
os.mkdir(MANUAL_CASE_DIR)
# 自动生成测试用例模块
AUTO_CASE_DIR = os.path.join(CASE_DIR, "test_auto_case")
# Allure报告测试结果集目录
ALLURE_RESULTS_DIR = os.path.join(REPORT_DIR, "allure_results")
# Allure报告HTML测试报告目录
ALLURE_HTML_DIR = os.path.join(REPORT_DIR, "allure_html")
# Allure报告配置文件目录
ALLURE_CONFIG_DIR = os.path.join(LIB_DIR, "allure_config")

View File

@@ -1,113 +0,0 @@
"""
@FileNametest_issue_permission.py.py
@Description
@AuthorFloraachy
@Time2024/11/22 13:46
"""
# 第三方库导入
import pytest
import allure
# 本地应用/模块导入
from settings import GITLINK_DIR,GLOBAL_VARS
from utils.requests_utils.request_control import RequestControl
@allure.epic("GitLink")
@allure.feature("权限测试")
@allure.story("合并请求PR")
@pytest.mark.flow
@allure.title("在私有仓库测试非仓库成员访问合并请求,访问报错")
def test_pr_permission_on_private_repo(gitlink_login):
"""
合并请求权限测试
"""
with allure.step("登录用户新建一个私有仓库"):
global_var = GLOBAL_VARS.copy()
global_var["user_id"] = GLOBAL_VARS["env_user_id"]
global_var["_cookies"] = GLOBAL_VARS["cookies"]
project_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR,
key="gitlink_projects_new_project_02",
global_var=global_var)
global_var["repo_owner"] = project_info["repo_owner"]
global_var["repo_identifier"] = project_info["repo_identifier"]
global_var["init_repo_owner"] = project_info["repo_owner"]
global_var["init_repo_identifier"] = project_info["repo_identifier"]
with allure.step("仓库拥有者,获取测试仓库的默认分支"):
res = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_get_repo_detail_full_01",
global_var=global_var)
global_var.update(res)
with allure.step("仓库拥有者代码库新建文件,提交的分支新分支"):
global_var["repo_file_path"] = "test_permission.py"
res = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_repo_create_files_05",
global_var=global_var)
global_var.update(res)
with allure.step("仓库拥有者,新建一个合并请求"):
issue_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_repo_new_pull_request_01",
global_var=global_var)
global_var.update(issue_info)
with allure.step("非项目成员登录"):
global_var["env_login"] = GLOBAL_VARS["t_login"]
global_var["env_password"] = GLOBAL_VARS["t_password"]
login_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_login_01",
global_var=global_var)
global_var["cookies"] = login_info["cookies"]
with allure.step("非项目成员,访问合并请求详情,应该报错"):
RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_repo_get_pull_request_detail_02",
global_var=global_var)
with allure.step("仓库拥有者,删除仓库"):
global_var["cookies"] = global_var["_cookies"]
RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_projects_delete_project_01",
global_var=global_var)
@allure.epic("GitLink")
@allure.feature("权限测试")
@allure.story("合并请求PR")
@pytest.mark.flow
@allure.title("在公有仓库测试非仓库成员访问合并请求的,访问成功")
def test_pr_permission_on_public_repo(gitlink_login):
"""
合并请求权限
"""
with allure.step("登录用户新建一个公开仓库"):
global_var = GLOBAL_VARS.copy()
global_var["user_id"] = GLOBAL_VARS["env_user_id"]
global_var["_cookies"] = GLOBAL_VARS["cookies"]
project_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR,
key="gitlink_projects_new_project_01",
global_var=global_var)
global_var["repo_owner"] = project_info["repo_owner"]
global_var["repo_identifier"] = project_info["repo_identifier"]
global_var["init_repo_owner"] = project_info["repo_owner"]
global_var["init_repo_identifier"] = project_info["repo_identifier"]
with allure.step("仓库拥有者,获取测试仓库的默认分支"):
res = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_get_repo_detail_full_01",
global_var=global_var)
global_var.update(res)
with allure.step("仓库拥有者,代码库新建文件,提交的分支新分支"):
global_var["repo_file_path"] = "test_permission.py"
res = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_repo_create_files_05",
global_var=global_var)
global_var.update(res)
with allure.step("仓库拥有者,新建一个合并请求"):
issue_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR,
key="gitlink_repo_new_pull_request_01",
global_var=global_var)
global_var.update(issue_info)
with allure.step("非项目成员登录"):
global_var["env_login"] = GLOBAL_VARS["t_login"]
global_var["env_password"] = GLOBAL_VARS["t_password"]
login_info = RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_login_01",
global_var=global_var)
global_var["cookies"] = login_info["cookies"]
with allure.step("非项目成员,访问合并请求详情,访问成功"):
RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_repo_get_pull_request_detail_01",
global_var=global_var)
with allure.step("仓库拥有者,删除仓库"):
global_var["cookies"] = global_var["_cookies"]
RequestControl().api_request_flow(api_file_path=GITLINK_DIR, key="gitlink_projects_delete_project_01",
global_var=global_var)