56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
"""Test CLI generation"""
|
|
import pytest
|
|
from app.cli.generators import (
|
|
generate_hostname_cli,
|
|
generate_vlan_cli,
|
|
generate_interface_cli,
|
|
)
|
|
from app.cli.renderer import ConfigRenderer
|
|
|
|
|
|
def test_generate_hostname():
|
|
"""Test hostname generation"""
|
|
cmds = generate_hostname_cli("ROUTER-01")
|
|
assert cmds == ["hostname ROUTER-01"]
|
|
|
|
|
|
def test_generate_vlan():
|
|
"""Test VLAN generation"""
|
|
vlans = [
|
|
{"id": 10, "name": "USERS"},
|
|
{"id": 20, "name": "SERVERS"},
|
|
]
|
|
cmds = generate_vlan_cli(vlans)
|
|
|
|
assert "vlan 10" in cmds
|
|
assert " name USERS" in cmds
|
|
assert "vlan 20" in cmds
|
|
assert " name SERVERS" in cmds
|
|
|
|
|
|
def test_config_renderer():
|
|
"""Test full configuration rendering"""
|
|
config_data = {
|
|
"hostname": "SWITCH-01",
|
|
"vlans": [
|
|
{"id": 10, "name": "USERS"},
|
|
],
|
|
"interfaces": [
|
|
{
|
|
"name": "GigabitEthernet0/1",
|
|
"description": "Access Port",
|
|
"type": "access",
|
|
"vlan": 10,
|
|
"enabled": True,
|
|
}
|
|
],
|
|
}
|
|
|
|
renderer = ConfigRenderer()
|
|
cli_text = renderer.render(config_data)
|
|
|
|
assert "hostname SWITCH-01" in cli_text
|
|
assert "vlan 10" in cli_text
|
|
assert "interface GigabitEthernet0/1" in cli_text
|
|
assert "write memory" in cli_text
|