forked from floraachy/openTT
Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
|
79f565bae8 | |
|
f0f92ad47c | |
|
73462370f0 | |
|
bc85e074f1 | |
|
9d31476a61 | |
|
42b03ef2f7 |
|
@ -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
|
414
settings.py
414
settings.py
|
@ -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>
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
执行结果如下:
|
||||
用例运行总数:<strong> ${total} 个</strong>
|
||||
通过用例个数(passed): <strong><font color="green" >${passed} 个</font></strong>
|
||||
失败用例个数(failed): <strong><font color="red" >${failed} 个</font></strong>
|
||||
异常用例个数(error): <strong><font color="orange" >${broken} 个</font></strong>
|
||||
跳过用例个数(skipped): <strong><font color="grey" >${skipped} 个</font></strong>
|
||||
失败重试用例个数 * 次数之和(rerun): <strong>${rerun} 个</strong>
|
||||
成 功 率:<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>
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
执行结果如下:
|
||||
用例运行总数:<strong> ${total} 个</strong>
|
||||
通过用例个数(passed): <strong><font color="green" >${passed} 个</font></strong>
|
||||
失败用例个数(failed): <strong><font color="red" >${failed} 个</font></strong>
|
||||
异常用例个数(error): <strong><font color="orange" >${broken} 个</font></strong>
|
||||
跳过用例个数(skipped): <strong><font color="grey" >${skipped} 个</font></strong>
|
||||
失败重试用例个数 * 次数之和(rerun): <strong>${rerun} 个</strong>
|
||||
成 功 率:<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")
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
"""
|
||||
@FileName:test_issue_permission.py.py
|
||||
@Description:
|
||||
@Author:Floraachy
|
||||
@Time:2024/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)
|
Loading…
Reference in New Issue