Ejemplo n.º 1
0
def test_invalid_template_raises_error():
    test_template = {
        "key": "573DOES NOT EXIST60474_59123133312286777",
        "driver": "dell_force10",
        "command": "show mac-address-table",
        "template_name": "dell_force10_show_mac-address-table.template"
    }
    template_obj = FSMTemplate(**test_template)
    from requests.exceptions import HTTPError
    with pytest.raises(HTTPError):
        template_obj.add_template()
Ejemplo n.º 2
0
def test_get_template_list():
    template_obj = FSMTemplate()
    result = template_obj.get_template_list()
    assert 'task_result' in result['data']
    tr = result['data']['task_result']
    assert len(tr) > 0
    for driver, template_mappings in tr.items():
        assert isinstance(driver, str)
        assert isinstance(template_mappings, list)
        for template_mapping in template_mappings:
            assert 'command' in template_mapping
            assert 'template' in template_mapping
Ejemplo n.º 3
0
async def add_textfsm_template(template_add: Union[TFSMTemplateAdd, TFSMPushTemplateModel]):
    req_data = template_add.dict()
    if isinstance(template_add, TFSMTemplateAdd):
        entry_type = TransactionLogEntryType.tfsm_pull
        template_obj = FSMTemplate(**req_data)
        template_text = template_obj.fetch_template()
        req_data["template_text"] = template_text
        req_data.pop("key")

    entry_type = TransactionLogEntryType.tfsm_push
    log.debug(f"{entry_type=}")
    resp = routes["pushtemplate"](**req_data)

    add_transaction_log_entry(entry_type=entry_type, data=req_data)
    return resp
Ejemplo n.º 4
0
def test_del_template():
    test_template = {
        "driver": "dell_force10",
        "command": "show mac-address-table",
        "template_name": "dell_force10_show_mac-address-table.template"
    }
    test_template["template"] = test_template["template_name"]
    template_obj = FSMTemplate(**test_template)

    matching_templates = get_matching_templates(test_template, template_obj)

    base = len(matching_templates)
    assert base > 0

    template_obj.remove_template()

    matching_templates = get_matching_templates(test_template, template_obj)
    assert len(matching_templates) == 0
Ejemplo n.º 5
0
def test_add_template():
    test_template = {
        "key": "2765662087944207_217805392995412877",
        "driver": "dell_force10",
        "command": "show mac-address-table",
        "template_name": "dell_force10_show_mac-address-table.template"
    }
    driver = test_template["driver"]

    template_obj = FSMTemplate(**test_template)

    matching_templates = get_matching_templates(test_template, template_obj)
    base = len(matching_templates)

    template_obj.add_template()

    matching_templates = get_matching_templates(test_template, template_obj)
    assert len(matching_templates) == base + 1
Ejemplo n.º 6
0
def test_add_template():
    test_template = {
        "key": "573300637760474_59123133312286777",
        "driver": "dell_force10",
        "command": "show mac-address-table",
        "template_name": "dell_force10_show_mac-address-table.template"
    }
    driver = test_template["driver"]

    template_obj = FSMTemplate(**test_template)

    matching_templates = get_matching_templates(test_template, template_obj)
    base = len(matching_templates)

    template_obj.add_template(strict=False)

    matching_templates = get_matching_templates(test_template, template_obj)
    assert len(matching_templates) == base + 1
Ejemplo n.º 7
0
def test_add_template_new_section():
    from random import randint
    rint = randint(0, 1000)
    test_template = {
        "key": "573300637760474_59123133312286777",
        "driver": f"cisgo_ios{rint}",
        "command": "show mac-address-table",
        "template_name": f"cisgo_ios{rint}_show_mac-address-table.template"
    }

    driver = test_template["driver"]

    template_obj = FSMTemplate(**test_template)
    existing_driver_templates = get_driver_template_list(driver, template_obj)
    assert len(existing_driver_templates) == 0

    template_obj.add_template()
    new_driver_templates = get_driver_template_list(driver, template_obj)
    assert len(new_driver_templates) == 1
Ejemplo n.º 8
0
def get_driver_template_list(
        driver: str, template_obj: FSMTemplate) -> typing.List[typing.Dict]:
    result = template_obj.get_template_list()
    template_driver_mapping = result['data']['task_result']
    return template_driver_mapping.get(driver, [])
Ejemplo n.º 9
0
def test_template_object():
    config = confload.initialize_config()
    template_obj = FSMTemplate()
    result = template_obj.get_template_list()
    assert 'Errno' not in result.get('data', '')
    assert result['status'] != 'error'