# -*- coding: UTF-8 -*- import configparser import copy import os import time import uuid import pytest from common.read_data.read_data import ReadData from common.ui_common.objects.flags import Flags from common.ui_common.objects.objects_public_operations import ObjectsPublicOperations, download_files from config.workpath import workdir data = ReadData() class TestFlags: @pytest.mark.parametrize("data", data.read_data_object(r"Flags\\base_flags.json"), ids=data.generate_id) def test_flags(self, demo_fixture, data): flag = Flags(demo_fixture) flag.flag_case(data) # @pytest.mark.parametrize("data", data.read_data_object(r"Flags\\select_and_export.json"), ids=data.generate_id) # def test_export_and_verify_checkbox(self, data): # driver = download_files() # flag = Flags(driver) # flag._export_and_verify_checkbox(data) # driver.quit() # @pytest.mark.parametrize("data", data.read_data_object(r"Flags\\objects_delete.json"), ids=data.generate_id) def pass_test_delete(self, demo_fixture, data): flag = Flags(demo_fixture) flag._objects_delete(data) @pytest.mark.parametrize("data", data.read_data_object(r"Flags\\nested_accgroup.json"), ids=data.generate_id) # test case 008 def test_nested_flag_group(self, demo_fixture, data): flag = Flags(demo_fixture) flag._create_mutiLayer_nested_flagGroup(data) search_value = data["Name"][0][:int((len(data["Name"][0])) / 3)] # print("search_value:{}".format(search_value)) # 清理测试数据 # flag._simple_query(data, search_value=search_value) flag._del(data, search_value, del_flag=1) @pytest.mark.parametrize("data", [{ "ids": "创建flagObject——Name-T018-1", "Model": "create", "Type": 1, "Name": "", "Search type": "", "Items": [ "[random]" ], "Description": "", "Subordinate Objects": "" }, { "ids": "创建flagObject——Name-T018-1", "Model": "create", "Type": 0, "Name": "tes", "Search type": "", "Items": [ "[random]" ], "Description": "", "Subordinate Objects": "" }, { "ids": "创建accObject——Name-T018-3", "Model": "create", "Type": 1, "Name": "test_url_ObjectDetailPage_nameLenthNumber_posXpath--url_ObjectDetailPage_nameLenthNumber_posXpath-url_ObjectDetailPage_nameLenthNumber_posXpathurl_ObjectDetailPage_nameLenthNumber_posXpath", "Search type": "", "Items": [ "[random]" ], "Description": "", "Subordinate Objects": "" }, ]) def test_verify_object_name_input(self, demo_fixture, data): flag = Flags(demo_fixture) flag._verify_object_name_input(data) @pytest.mark.parametrize("data", [{ "ids": "不输入必要数据——Item-T022", "Model": "create", "Type": 0, "Name": "", "Search type": "", "Items": [ "" ], "Description": "", "Subordinate Objects": "" }, ]) def test_verify_item_value_input(self, demo_fixture, data): flag = Flags(demo_fixture) flag._verify_item_value_input(data) # # @pytest.mark.repeat(5) @pytest.mark.parametrize("data", data.read_data_object(r"Flags\\switch_page_after_selected.json"), ids=data.generate_id) def test_switch_page_after_selected(self, demo_fixture, data): flag = Flags(demo_fixture) # profile_pub = ProfilesPublicOperations(demo_fixture) # profile_pub.change_vsys(vsys_name='PerformanceTestVsys') flag._switch_page_after_selected(data) @pytest.mark.parametrize("data", [ { "ids": "创建flagsObjecGroup 01", "Model": "create", "Type": 1, "Search type": "", "Name": "", "Items": [], "Description": "", "Subordinate Objects": { "subName": "", "subItems": [ [ "5:0->", "7:1->", "[random]->" ] ], "subDescription": "" } }, ]) def passtest_reference_count(self, demo_fixture,data): flag = Flags(demo_fixture) try: flag.create(data) flag._reference_count() finally: flag.delete(data) # @pytest.mark.parametrize("data", [ # { # "ids": "test_reference_by_object", # "Model": "create", # "Type": 0, # "Search type": "", # "Name": "", # "Items": [ # [ # "1:0->", # "2:1->", # "[random]->" # ] # ], # "Description": "" # }, # ]) # def test_reference_by_object(self, demo_fixture, data): # flag = Flags(demo_fixture) # flag._reference_by_object(data) # @pytest.mark.parametrize("data", [{ # "ids": "创建urlObject并查看验证审计日志-T016/创建并修改urlObject查看验证审计日志-T041/23.09版本新功能:右侧页面增加Audit Logs功能-T041", # "Model": "create", # "Type": 0, # "Name": "", # "Search type": "", # "Items": [[ # "1:0->11:1"] # ], # "Description": "", # }, ]) # def test_verify_audit_logs(self, demo_fixture, data): # flag = Flags(demo_fixture) # flag._goto_flagsPage() # flag._verify_audit_logs(data) @pytest.mark.parametrize("data", [ { "ids": "创建Group,引用子对象,可以选择Exclude或Include- ", "Model": "create", "Type": 1, "Name": "", "Search type": "", } ]) def pass_test_onlyExcludeItem(self, demo_fixture, data): flag = Flags(demo_fixture) flag._groupAddIncludeAndExcludeItem(data) @pytest.mark.parametrize("data", [ { "ids": "一个对象至少包含一个子对象,即必须有一个是Include类型-T036 ", "Model": "create", "Type": 1, "Name": "test_only_exclude_item", "Search type": "", "Items": [], "Description": "", "Subordinate Objects": { "subName": "", "subItems": [], "subDescription": "" }, "Exclude Objects": { "subName": "[random][search]", "subItems": [ [ "11:1->" ] ], "subDescription": "" } } ]) def test_only_exclude_item(self, demo_fixture, data): flag = Flags(demo_fixture) flag._only_exclude_item(data) @pytest.mark.parametrize("data", data.read_data_object(r"URLs\\pages_turning.json"), ids=data.generate_id) def test_pages_turning(self, demo_fixture, data): flag = Flags(demo_fixture) # objects下的对象页 flag._goto_flagsPage() flag.objects_po.pages_turning(data) @pytest.mark.parametrize("data", data.read_data_object(r"URLs\\pages_turning.json"), ids=data.generate_id) def test_turnPagesInSubObjectsDrawer(self, demo_fixture, data): flag = Flags(demo_fixture) flag._turnPagesInSubObjectsDrawer(data) # @pytest.mark.repeat(3) @pytest.mark.parametrize("data", data.read_data_object(r"Accounts\\clear_counter.json"), ids=data.generate_id) def test_clear_counter(self, demo_fixture, data): flag = Flags(demo_fixture) flag._clear_counter(data) # # @pytest.mark.parametrize("data", [ # { # "ids": "新建Flag_View_statistics_case", # "Model": "create", # "Type": 0, # "Search type": "", # "Name": "", # "Object Statistics": "Elaborate", # "Items": [ # [ # "1:0->" # ], # [ # "6:0->" # ], # [ # "16:0->" # ], # [ # "2:1->" # ], # [ # "[random]->" # ] # ], # "Description": "" # }, { # "ids": "创建flagsObjecGroup_View_statistics_case", # "Model": "create", # "Type": 1, # "Search type": "", # "Object Statistics": "Elaborate", # "Name": "", # "Items": [], # "Description": "", # "Subordinate Objects": { # "subName": "", # "subItems": [ # [ # "5:0->", # "7:1->", # "[random]->" # ] # ], # "subDescription": "" # } # }, # ]) # def test_view_statistics_case(self, demo_fixture, data): # flag = Flags(demo_fixture) # flag._view_statistics_case(data) @pytest.mark.parametrize("data", [ { "ids": "test_ui_itemDuplicateCheck--Create时校验", "Model": "create", "Type": 0, "Search type": "", "Name": "test_ui_itemDuplicateCheck", "Items": [ [ "1:0->", "2:0->", "3:0->", "16:1->" ] ], "Description": "" }, { "ids": "test_ui_itemDuplicateCheck--仅在本Object中重复", "Model": "create", "Type": 0, "Search type": "", "Name": "test_ui_itemDuplicateCheck", "Items": [ [ "1:1->", "10:1->", "[random]->" ], [ "1:1->", "10:1->", "[random]->" ] ], "Description": "", "repetition_type": "1" }, { "ids": "test_ui_itemDuplicateCheck--Edit时校验", "Model": "modify", "Type": 0, "Search type": "", "Name": "test_ui_itemDuplicateCheck", "Items": [ [ "1:0->1:0", "2:0->2:0", "3:0->3:0", "16:1->16:1" ] ], "Description": "" }, ]) def test_item_duplicate_check(self, demo_fixture, data): flag = Flags(demo_fixture) flag._item_duplicate_check(data) def pass_test_onlyViewPermission(self, demo_fixture): flag = Flags(demo_fixture) flag._onlyViewPermission() # # 列表页中筛选条件生效时,页面跳转再返回,筛选条件仍生效 # # 新建超出5层的Flag group时,有错误提示 # # Items导入错误文件的验证 @pytest.mark.parametrize("data", [{ "ids": "组合查询", "Model": "create", "Type": 0, "Search type": "Name&Description", "Name": "Name&ID&Description", "Items": [ ["1:0->"] ], "Description": "" }, ]) def test_multiple_search(self, demo_fixture, data): flag = Flags(demo_fixture) flag._multiple_search(data) @pytest.mark.parametrize("data", [ { "ids": "test_sub_objects_drawer_search", "Model": "create", "Type": 1, "Search type": "", "Name": "", "Items": [], "Description": "", "Subordinate Objects": { "subName": "", "subItems": [ [ "5:0->", "7:1->", "[random]->" ] ], "subDescription": "" } }, ]) def test_sub_objects_drawer_search(self, demo_fixture, data): flag = Flags(demo_fixture) flag._sub_objects_drawer_search(data) @pytest.mark.parametrize("data", [ { "ids": "test_different_vsys_check", "Model": "create", "Type": 0, "Search type": "", "Name": "", "Items": [ [ "1:0->", "[random]->" ] ], "Description": "" } ]) def test_different_vsys_check(self, demo_fixture, data): flag = Flags(demo_fixture) flag._different_vsys_check(data) @pytest.mark.parametrize("data", [ { "ids": "修改时增量导入Items", "Model": "modify", "Type": 0, "Search type": "", "Name": "", "Items": [ [ "[random]->flag_item导入文件.txt[ImportFromFile]" ] ], "Description": "" } ]) def test_audit_log_all_operation(self, demo_fixture, data): flag = Flags(demo_fixture) flag._audit_log_all_operation(data)