|
import allure
|
|
import pytest
|
|
|
|
from utils.utility_method import get_data_from_yaml, data_list_to_transform
|
|
|
|
project_name = get_data_from_yaml('create_project', ['project_autouse_id'])[0]
|
|
not_autouse_id = get_data_from_yaml('create_project', ['not_autouse_id'])[0]
|
|
create_data = ['测试项目', 'demo', '创建测试项目', 'https://www.baidu.com']
|
|
update_data = ['测试项目111', 'demo', 'demo测试', 'https://cn.bing.com/?mkt=zh-CN']
|
|
module_list = ['问题跟踪', '时间跟踪', '新闻', '文档', '文件', 'wiki', '版本库', '讨论区', '日历', '甘特图']
|
|
|
|
|
|
class TestProject:
|
|
@pytest.fixture(scope='function', params=project_name, ids=project_name)
|
|
def create_project_only_name(self, project, request):
|
|
r = project.add_project()\
|
|
.write_project_messages(request.param).click_save()
|
|
project_id = r.get_project_identifier()
|
|
yield r
|
|
r.goto_project_page().delete_project(request.param, project_id)
|
|
|
|
@allure.title("【正向】创建项目-只填写名称,自动生成标识")
|
|
def test_create_project_only_name(self, create_project_only_name):
|
|
result = create_project_only_name.get_status()
|
|
assert result
|
|
assert result == '创建成功'
|
|
|
|
@pytest.fixture(scope='function', params=data_list_to_transform(not_autouse_id))
|
|
def create_project_write_identify(self, request, project):
|
|
res = project.add_project() \
|
|
.write_project_messages(project_name=request.param[0], project_identifier=request.param[1])\
|
|
.click_save()
|
|
yield res, request.param[1]
|
|
res.goto_project_page().delete_project(request.param[0], request.param[1])
|
|
|
|
@allure.title("【正向】创建项目-填写名称和标识")
|
|
def test_add_project_only_required(self, create_project_write_identify):
|
|
r, param = create_project_write_identify
|
|
res = r.get_status()
|
|
assert res
|
|
assert res == '创建成功'
|
|
res = r.get_project_identifier()
|
|
assert res == param
|
|
# 创建后,标识不可修改,获取属性并断言
|
|
identify = r.get_identifier_attribute()
|
|
assert identify == 'true'
|
|
|
|
@pytest.fixture()
|
|
def project_fixture(self, project):
|
|
r = project.add_project()
|
|
yield r
|
|
r.goto_project_page()
|
|
|
|
@allure.title("【逆向】创建时,不填写项目名称")
|
|
def test_no_name(self, project_fixture):
|
|
res = project_fixture \
|
|
.write_project_messages(None, "demo") \
|
|
.click_save()
|
|
r = res.get_error_message()
|
|
assert r
|
|
assert r == "名称 不能为空字符"
|
|
|
|
@allure.title("【逆向】创建时,不填写项目标识")
|
|
def test_no_identify(self, project_fixture):
|
|
res = project_fixture \
|
|
.write_project_messages('测试项目') \
|
|
.click_save()
|
|
r = res.get_error_message()
|
|
assert r
|
|
assert r == "标识 不能为空字符"
|
|
|
|
@allure.title("创建项目,填写所有数据")
|
|
def test_create_project(self, project_fixture):
|
|
res = project_fixture \
|
|
.write_project_messages(*create_data) \
|
|
.click_save().to_overview()
|
|
result = res.get_overview_page_message()
|
|
assert result.get('wiki') == create_data[2]
|
|
assert result.get('home') == create_data[-1]
|
|
assert result.get('name') == create_data[0]
|
|
# 清理数据
|
|
res.goto_project_page().delete_project(create_data[0], create_data[1])
|
|
|
|
@allure.title("更新项目信息")
|
|
def test_update_project(self, project_fixture):
|
|
res = project_fixture.write_project_messages(*create_data) \
|
|
.click_save()\
|
|
.update_project(update_data[0], *update_data[2:])\
|
|
.click_save().to_overview()
|
|
result = res.get_overview_page_message()
|
|
assert result.get('wiki') == update_data[2]
|
|
assert result.get('home') == update_data[-1]
|
|
assert result.get('name') == update_data[0]
|
|
# 清理数据
|
|
res.goto_project_page().delete_project(update_data[0], update_data[1])
|
|
|
|
@allure.title("搜索项目")
|
|
def test_search_project(self, project_fixture):
|
|
res = project_fixture.write_project_messages(*create_data) \
|
|
.click_save().goto_project_page()
|
|
result = res.search(create_data[0], '项目')
|
|
# 需要在项目外去搜索,否则搜索类型中没有项目选项
|
|
assert result
|
|
# 清理数据
|
|
res.goto_project_page().delete_project(create_data[0], create_data[1])
|
|
|
|
@pytest.mark.last
|
|
@allure.title("更改项目的模块内容")
|
|
def test_project_module(self, create_project):
|
|
res = create_project.update_module(module_list[3:5]) \
|
|
.click_save().get_module()
|
|
assert res == module_list[3:5]
|
|
|
|
|
|
|
|
|