def test_add_face_alert_deployment_task_duplicate_task_name(
        sb, login, setup_face_alert_deployment_task_name_and_delete_task):
    """测试任务名重复"""
    # 先用初始值创建一个任务
    task = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ])
    TaskPage.add_face_alert_deployment_task(sb, task)
    # 再添加一个设备
    MenuBar.click_menu_item_by_text(sb, '配置', '设备管理')
    rtsp_device = RTSP(
        setup_face_alert_deployment_task_name_and_delete_task['name'] + 'dup',
        setup_face_alert_deployment_task_name_and_delete_task['name'] + 'dup',
        setup_face_alert_deployment_task_name_and_delete_task['name'],
        setup_face_alert_deployment_task_name_and_delete_task['name'],
        'rtsp://confidence.119:6554/SchoolAnniversary.264')
    DevicePage.add_device_by_type(
        sb, rtsp_device, '网络摄像机')

    # 用新的设备和原先的任务名称、人像库作为添加规则的准备数据
    task2 = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'] + 'dup',
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ])
    # 定位到setup中的任务菜单
    MenuBar.click_menu_item_by_text(sb, '配置', '任务管理')
    # 再次添加规则
    TaskPage.add_face_alert_deployment_task(sb, task2)
    # 校验"任务名已存在"
    TaskPage.assert_alert_message(sb, '任务名已存在')
    # 关闭新增任务窗口
    TaskPage.click_task_cancel_button(sb)
def test_add_face_alert_deployment_task(
        sb, login, setup_face_alert_deployment_task_name_and_delete_task):
    """添加基本的监控任务"""
    task = FaceAlertDeploymentTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[setup_face_alert_deployment_task_name_and_delete_task['name']])
    TaskPage.add_face_alert_deployment_task(sb, task)
def test_add_face_alert_deployment_task_then_disable(sb, login, setup_face_alert_deployment_task_name_and_delete_task):
    """添加监控任务后禁用"""
    task = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ])
    TaskPage.add_face_alert_deployment_task(sb, task)
    TaskPage.switch_task_status_by_name(sb, task.task_name)
def test_add_face_alert_deployment_task_multi_portraits(
        sb, login, setup_face_alert_deployment_task_name_with_mul_portrait_and_delete_task):
    """添加多个人像库的监控任务"""
    task = FaceAlertDeploymentTask(setup_face_alert_deployment_task_name_with_mul_portrait_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_with_mul_portrait_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_with_mul_portrait_and_delete_task['name'],
                                     setup_face_alert_deployment_task_name_with_mul_portrait_and_delete_task['name2']
                                 ])
    TaskPage.add_face_alert_deployment_task(sb, task)
def test_add_face_alert_deployment_task_threshold(sb, login, setup_face_alert_deployment_task_name_and_delete_task):
    """添加指定阈值的监控任务,并校验任务详情中的阈值是否更新"""
    task = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ],
                                 threshold='70.0')
    TaskPage.add_face_alert_deployment_task(sb, task)
    TaskPage.detail_task_by_name(sb, task.task_name)
    TaskPage.assert_element_text(sb,'//label[text()="阈值"]/parent::*//div', '70.0%')
    TaskPage.close_task_detail_popup(sb)
def test_add_face_alert_deployment_task_attributes(sb, login, attribute_input, setup_face_alert_deployment_task_name_and_delete_task):
    """添加入口|出口|第三方对接|属性的监控任务"""
    task = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ],
                                 attributes=attribute_input)
    TaskPage.add_face_alert_deployment_task(sb, task)
    TaskPage.detail_task_by_name(sb, setup_face_alert_deployment_task_name_and_delete_task['name'])
    TaskPage.assert_element_text(sb, '//label[text()="特殊属性"]/parent::*//div', attribute_input[0])
    TaskPage.close_task_detail_popup(sb)
def test_add_face_alert_deployment_task_then_update_taskName(sb, login, setup_face_alert_deployment_task_name_and_delete_task):
    """更新监控任务的任务名称,
    1. 校验任务列表中名是否更新
    2. 校验任务详情中任务名是否更新
    """
    task = FaceAccessControlTask(setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 setup_face_alert_deployment_task_name_and_delete_task['name'],
                                 portraits=[
                                     setup_face_alert_deployment_task_name_and_delete_task['name']
                                 ])
    TaskPage.add_face_alert_deployment_task(sb, task)
    newName = f"{setup_face_alert_deployment_task_name_and_delete_task['name']}upd"
    TaskPage.edit_task_name(sb, setup_face_alert_deployment_task_name_and_delete_task['name'], newName)
    TaskPage.search_task_by_name(sb, newName)
    TaskPage.assert_element_text(sb,'//*[@id="app"]/div/div[1]/section/div/div[2]/div[2]/div[1]/div[1]/div[3]/table/tbody/tr[1]/td[2]/div',newName)
    TaskPage.detail_task_by_name(sb, newName)
    TaskPage.assert_element_text(sb, '//label[text()="任务名称"]/parent::*//div', newName)
    TaskPage.close_task_detail_popup(sb)