import pytest
import allure
import lib

# 模拟数据,实际情况需要根据您的测试数据进行修改
delete_pz_records_data = [
    ({'DeleteRecords': ['record_id_to_delete']}, 200, 'OK'),
]
create_pz_records_data = [
    ({'FromBaseInfo': {'Type': 'A', 'Line': 'default'}, 'CreateRecords': [{'Value': '1.1.1.1'}]}, 200, 'OK'),
]
update_pz_records_data = [
    ({'UpdateRecords': [{'RecordID': 'record_id_to_update', 'Value': '2.2.2.2'}]}, 200, 'OK'),
]

@allure.title('编辑解析记录集:删除记录')
@pytest.mark.executor('王永林')
@pytest.mark.tag('P0', 'domain_sync', 'volc')
@pytest.mark.parametrize('data,code,message', delete_pz_records_data)
def test_pz_delet_record(tr_client, data, code, message, pz_zone_module):
    ZID = pz_zone_module.ZID
    create, _ = PZRecord(client=tr_client, ZID=ZID).create()
    Host = create.Host
    RecordID = create.RecordID
    Value = create.Value
    Line = create.Line

    frombaseinfo = {
        'Host': Host,
        'Type': create.Type,
        'Line': create.Line,
        'Value': create.Value,
    }
    if 'DeleteRecords' in data and data['DeleteRecords']:
        delete_records = data['DeleteRecords']
    else:
        delete_records = [RecordID]

    data['DeleteRecords'] = delete_records
    _, resp = DomainZones(client=tr_client, ZID=ZID).batch_edit_records(FromBaseInfo=frombaseinfo, **data, assert_flag=False)
    lib.top_or_tiagw_assert(tr_client, resp, code, message=message)


@allure.title('zone_sync_v2: 不存在的zone校验')
@pytest.mark.executor('luyilin')
@pytest.mark.tag('P0', 'zone_sync')
def test_zone_sync_v2_illegal_zone(tr_client):
    params = {
        'ZID': 123456,
        'Zones': {
            lib.get_uuid() + ' ' + str(123456): random_rr_v2()
        }
    }
    zones, resp = DomainZones(client=tr_client, **params).sync_full_records(assert_flag=False)
    assert lib.judge_code(resp, 400105), lib.response_message(resp)


@allure.title('PZ编辑解析记录集:创建记录')
@pytest.mark.executor('王永林')
@pytest.mark.tag('P0', 'domain')
@pytest.mark.parametrize('data,code,message', create_pz_records_data)
def test_pz_create_records(data, code, message, pz_zone_module, tr_client):
    random_host = 'test-' + lib.get_uuid()
    if 'FromBaseInfo' in data.keys() and 'Host' not in data['FromBaseInfo'].keys():
        data['FromBaseInfo']['Host'] = random_host
    created_host = random_host
    kwargs = {
        'ZID': pz_zone_module[0].ZID,
        'ZoneName': pz_zone_module[0].ZoneName
    }
    _, resp = DomainZones(client=tr_client, **kwargs).batch_edit_records(**data, code=code, message=message)
    lib.top_or_tiagw_assert(tr_client, resp, code)


@allure.title('PZ编辑解析记录集:更新记录')
@pytest.mark.executor('王永林')
@pytest.mark.tag('P0', 'domain_sync', 'volc')
@pytest.fixture(params=update_pz_records_data, ids=lambda d: str(d[0]))
def update_data(request):
    return request.param

def test_pz_update_records(update_data, pz_zone_module, tr_client):
    ZID = pz_zone_module[1]['Result']['ZID']
    create, _ = PZRecord(client=tr_client, ZID=ZID).create()
    Host = create.Host
    RecordID = create.RecordID
    Value = create.Value
    Line = create.Line

    record_ids = []
    record_ids.append(RecordID)
    data, code, message = update_data
    update_records = data.get('UpdateRecords', [])
    for record in update_records:
        record['RecordID'] = record_ids[-1]

    frombaseinfo = {
        'Host': Host,
        'Type': create.Type,
        'Line': create.Line,
        'Value': create.Value,
    }

    _, resp = DomainZones(client=tr_client, ZID=ZID).batch_edit_records(FromBaseInfo=frombaseinfo, **data, assert_flag=False)
    lib.top_or_tiagw_assert(tr_client, resp, code, message=message)
域名解析记录集操作:增删改查详解

原文地址: https://www.cveoy.top/t/topic/btHv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录