60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
|
# -*- coding: utf-8 -*-
|
|||
|
# @Time : 2021/8/14 12:33
|
|||
|
# @Author : Flora.Chen
|
|||
|
# @File : draft_bk.py.py
|
|||
|
# @Software: PyCharm
|
|||
|
# @Desc:
|
|||
|
|
|||
|
import pytest
|
|||
|
from loguru import logger
|
|||
|
from config.settings import EnvConfig
|
|||
|
from api.login_api import TrustieLogin
|
|||
|
from api.project_api import ProjectApi
|
|||
|
|
|||
|
|
|||
|
# ------------------------------------- START: 配置运行环境 ---------------------------------------#
|
|||
|
|
|||
|
def pytest_addoption(parser):
|
|||
|
"""
|
|||
|
pytest_addoption 可以让用户注册一个自定义的命令行参数,方便用户将数据传递给 pytest;
|
|||
|
这个 Hook 方法一般和 内置 fixture pytestconfig 配合使用,pytest_addoption 注册命令行参数,pytestconfig 通过配置对象读取参数的值;
|
|||
|
:param parser:
|
|||
|
:return:
|
|||
|
"""
|
|||
|
|
|||
|
parser.addoption(
|
|||
|
# action="store" 默认,只存储参数的值,可以存储任何类型的值,此时 default 也可以是任何类型的值,而且命令行参数多次使用也只能生效一个,最后一个值覆盖之前的值;
|
|||
|
"--env", action="store",
|
|||
|
default="test",
|
|||
|
choices=["test", "live"], # choices 只允许输入的值的范围
|
|||
|
help="通过自定义命令行参数-env设置当前运行的环境"
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
# 从配置对象中读取自定义参数的值
|
|||
|
@pytest.fixture(scope="session", autouse=True)
|
|||
|
def env(request):
|
|||
|
env = request.config.getoption("--env")
|
|||
|
env_mapping = EnvConfig.env_mapping.value
|
|||
|
env = env_mapping.get(f"{env}")
|
|||
|
forge_env = env.get("forge")
|
|||
|
logger.debug(f"当前的执行环境:{forge_env}")
|
|||
|
return {"forge_env": forge_env}
|
|||
|
|
|||
|
|
|||
|
@pytest.fixture(scope="session")
|
|||
|
def get_user(request):
|
|||
|
env = request.config.getoption("--env")
|
|||
|
users_mapping = EnvConfig.users_mapping.value
|
|||
|
users = users_mapping.get(f"{env}")
|
|||
|
return users
|
|||
|
|
|||
|
|
|||
|
# ------------------------------------- END: 配置运行环境 ---------------------------------------#
|
|||
|
|
|||
|
@pytest.fixture(scope="session")
|
|||
|
def get_cookies(env, get_user):
|
|||
|
login = TrustieLogin(host=env)
|
|||
|
return login.login_api(user=get_user.get("user"), pwd=get_user.get("pwd")).cookies
|
|||
|
|