示例#1
0
async def test_ports():
    """Test that different types of ports work."""
    mock_requests = MagicMock(return_value=Future())
    mock_requests.return_value.set_result("")
    wlans = Wlans(WLANS, mock_requests)

    assert len(wlans.values()) == 2

    wlan = wlans["SSID 1"]
    assert wlan.id == "012345678910111213141516"
    assert wlan.bc_filter_enabled == False
    assert wlan.bc_filter_list == []
    assert wlan.dtim_mode == "default"
    assert wlan.dtim_na == 1
    assert wlan.dtim_ng == 1
    assert wlan.enabled is True
    assert wlan.group_rekey == 3600
    assert wlan.is_guest is False
    assert wlan.mac_filter_enabled is False
    assert wlan.mac_filter_list == []
    assert wlan.mac_filter_policy == "allow"
    assert wlan.minrate_na_advertising_rates is False
    assert wlan.minrate_na_beacon_rate_kbps == 6000
    assert wlan.minrate_na_data_rate_kbps == 6000
    assert wlan.minrate_na_enabled is False
    assert wlan.minrate_na_mgmt_rate_kbps == 6000
    assert wlan.minrate_ng_advertising_rates is False
    assert wlan.minrate_ng_beacon_rate_kbps == 1000
    assert wlan.minrate_ng_cck_rates_enabled is False
    assert wlan.minrate_ng_data_rate_kbps == 1000
    assert wlan.minrate_ng_enabled is False
    assert wlan.minrate_ng_mgmt_rate_kbps == 1000
    assert wlan.name == "SSID 1"
    assert wlan.name_combine_enabled is True
    assert wlan.name_combine_suffix == ""
    assert wlan.no2ghz_oui is False
    assert wlan.schedule == []
    assert wlan.security == "wpapsk"
    assert wlan.site_id == "5a32aa4ee4b0412345678910"
    assert wlan.usergroup_id == "012345678910111213141518"
    assert wlan.wep_idx == 1
    assert wlan.wlangroup_id == "012345678910111213141519"
    assert wlan.wpa_enc == "ccmp"
    assert wlan.wpa_mode == "wpa2"
    assert wlan.x_iapp_key == "01234567891011121314151617181920"
    assert wlan.x_passphrase == "password in clear text"

    await wlans.async_enable(wlan)
    mock_requests.assert_called_with("put",
                                     "/rest/wlanconf/012345678910111213141516",
                                     json={"enabled": True})

    await wlans.async_disable(wlan)
    mock_requests.assert_called_with("put",
                                     "/rest/wlanconf/012345678910111213141516",
                                     json={"enabled": False})
示例#2
0
async def test_clients():
    """Test clients class."""
    mock_requests = MagicMock(return_value=Future())
    mock_requests.return_value.set_result("")
    clients = Clients([WIRELESS_CLIENT], mock_requests)

    assert len(clients.values()) == 1

    client = clients[WIRELESS_CLIENT["mac"]]
    assert client.blocked is False
    assert client.essid == "SSID"
    assert client.hostname == "client"
    assert client.ip == "10.0.0.1"
    assert client.is_guest is False
    assert client.is_wired is False
    assert client.last_seen == 1587765360
    assert client.mac == WIRELESS_CLIENT["mac"]
    assert client.name == "Client 1"
    assert client.oui == "Apple"
    assert client.site_id == "5a32aa4ee4b0412345678910"
    assert client.sw_depth == -1
    assert client.sw_mac == "fc:ec:da:11:22:33"
    assert client.sw_port == 1
    assert client.rx_bytes == 12867114
    assert client.tx_bytes == 52852089
    assert client.uptime == 11904
    assert client.wired_rx_bytes == 0
    assert client.wired_tx_bytes == 0
    assert (client.__repr__() ==
            f"<Client Client 1: 00:00:00:00:00:01 {WIRELESS_CLIENT}>")

    await clients.async_block(WIRELESS_CLIENT["mac"])
    mock_requests.assert_called_with("post",
                                     "/cmd/stamgr",
                                     json={
                                         "mac": WIRELESS_CLIENT["mac"],
                                         "cmd": "block-sta"
                                     })

    await clients.async_unblock(WIRELESS_CLIENT["mac"])
    mock_requests.assert_called_with(
        "post",
        "/cmd/stamgr",
        json={
            "mac": WIRELESS_CLIENT["mac"],
            "cmd": "unblock-sta"
        },
    )
示例#3
0
async def test_device_switch():
    """Test device class on aswitch."""
    mock_requests = MagicMock(return_value=Future())
    mock_requests.return_value.set_result("")
    devices = Devices([SWITCH_16_PORT_POE], mock_requests)

    assert len(devices.values()) == 1

    switch = devices[SWITCH_16_PORT_POE["mac"]]
    assert switch.board_rev == 9
    assert switch.considered_lost_at == 1588175821
    assert switch.disabled is False
    assert switch.id == "235678987654345678"
    assert switch.ip == "192.168.0.57"
    assert switch.fan_level == 0
    assert switch.has_fan is True
    assert switch.last_seen == 1588175722
    assert switch.mac == "fc:ec:da:11:22:33"
    assert switch.model == "US16P150"
    assert switch.name == "Switch 16"
    assert switch.next_interval == 23
    assert switch.next_heartbeat_at == 1588175755
    assert switch.overheating is False
    assert switch.port_overrides == [
        {
            "poe_mode": "off",
            "port_idx": 3,
            "portconf_id": "5a32aa4ee4babd4452422ddd22222",
        },
        {
            "poe_mode": "auto",
            "port_idx": 4,
            "portconf_id": "5a32aa4ee4babd4452422ddd22222",
        },
        {
            "poe_mode": "auto",
            "port_idx": 16,
            "portconf_id": "5a32aa4ee4babd4452422ddd22222",
        },
    ]
    assert switch.port_table == SWITCH_16_PORT_POE["port_table"]
    assert switch.state == 1
    assert switch.sys_stats == {
        "loadavg_1": "2.82",
        "loadavg_15": "2.81",
        "loadavg_5": "2.80",
        "mem_buffer": 0,
        "mem_total": 262402048,
        "mem_used": 129331200,
    }
    assert switch.type == "usw"
    assert switch.version == "4.0.66.10832"
    assert switch.upgradable is True
    assert switch.upgrade_to_firmware == "4.0.80.10875"
    assert switch.uplink_depth == 2
    assert switch.user_num_sta == 4
    assert switch.wlan_overrides == []
    assert switch.__repr__() == f"<Device {switch.name}: {switch.mac}>"

    await switch.async_set_port_poe_mode(1, "off")
    mock_requests.assert_called_with(
        "put",
        "/rest/device/235678987654345678",
        json={
            "port_overrides": [
                {
                    "poe_mode": "off",
                    "port_idx": 3,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "poe_mode": "auto",
                    "port_idx": 4,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "poe_mode": "auto",
                    "port_idx": 16,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "port_idx": 1,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                    "poe_mode": "off",
                },
            ]
        },
    )

    await switch.async_set_port_poe_mode(3, "off")
    mock_requests.assert_called_with(
        "put",
        "/rest/device/235678987654345678",
        json={
            "port_overrides": [
                {
                    "poe_mode": "off",
                    "port_idx": 3,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "poe_mode": "auto",
                    "port_idx": 4,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "poe_mode": "auto",
                    "port_idx": 16,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
                {
                    "poe_mode": "off",
                    "port_idx": 1,
                    "portconf_id": "5a32aa4ee4babd4452422ddd22222",
                },
            ]
        },
    )

    assert len(switch.ports.values()) == 18

    switch_port_1 = switch.ports[1]
    assert switch_port_1.ifname is None
    assert switch_port_1.media == "GE"
    assert switch_port_1.name == "Port 1"
    assert switch_port_1.port_idx == 1
    assert switch_port_1.poe_class == "Unknown"
    assert switch_port_1.poe_enable is False
    assert switch_port_1.poe_mode == "auto"
    assert switch_port_1.poe_power == "0.00"
    assert switch_port_1.poe_voltage == "0.00"
    assert switch_port_1.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_1.port_poe is True
    assert switch_port_1.up is True
    assert (
        switch_port_1.__repr__()
        == f"<{switch_port_1.name}: Poe {switch_port_1.poe_enable}>"
    )

    switch_port_2 = switch.ports[2]
    assert switch_port_2.ifname is None
    assert switch_port_2.media == "GE"
    assert switch_port_2.name == "Port 2"
    assert switch_port_2.port_idx == 2
    assert switch_port_2.poe_class == "Unknown"
    assert switch_port_2.poe_enable is False
    assert switch_port_2.poe_mode == "auto"
    assert switch_port_2.poe_power == "0.00"
    assert switch_port_2.poe_voltage == "0.00"
    assert switch_port_2.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_2.port_poe is True
    assert switch_port_2.up is False
    assert (
        switch_port_2.__repr__()
        == f"<{switch_port_2.name}: Poe {switch_port_2.poe_enable}>"
    )

    switch_port_3 = switch.ports[3]
    assert switch_port_3.ifname is None
    assert switch_port_3.media == "GE"
    assert switch_port_3.name == "Port 3"
    assert switch_port_3.port_idx == 3
    assert switch_port_3.poe_class == "Class 3"
    assert switch_port_3.poe_enable is True
    assert switch_port_3.poe_mode == "auto"
    assert switch_port_3.poe_power == "3.24"
    assert switch_port_3.poe_voltage == "53.78"
    assert switch_port_3.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_3.port_poe is True
    assert switch_port_3.up is True
    assert (
        switch_port_3.__repr__()
        == f"<{switch_port_3.name}: Poe {switch_port_3.poe_enable}>"
    )

    switch_port_4 = switch.ports[4]
    assert switch_port_4.ifname is None
    assert switch_port_4.media == "GE"
    assert switch_port_4.name == "Port 4"
    assert switch_port_4.port_idx == 4
    assert switch_port_4.poe_class == "Class 2"
    assert switch_port_4.poe_enable is True
    assert switch_port_4.poe_mode == "auto"
    assert switch_port_4.poe_power == "1.50"
    assert switch_port_4.poe_voltage == "53.85"
    assert switch_port_4.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_4.port_poe is True
    assert switch_port_4.up is True
    assert (
        switch_port_4.__repr__()
        == f"<{switch_port_4.name}: Poe {switch_port_4.poe_enable}>"
    )

    switch_port_5 = switch.ports[5]
    assert switch_port_5.ifname is None
    assert switch_port_5.media == "GE"
    assert switch_port_5.name == "Port 5"
    assert switch_port_5.port_idx == 5
    assert switch_port_5.poe_class == "Unknown"
    assert switch_port_5.poe_enable is False
    assert switch_port_5.poe_mode == "auto"
    assert switch_port_5.poe_power == "0.00"
    assert switch_port_5.poe_voltage == "0.00"
    assert switch_port_5.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_5.port_poe is True
    assert switch_port_5.up is False
    assert (
        switch_port_5.__repr__()
        == f"<{switch_port_5.name}: Poe {switch_port_5.poe_enable}>"
    )

    switch_port_6 = switch.ports[6]
    assert switch_port_6.ifname is None
    assert switch_port_6.media == "GE"
    assert switch_port_6.name == "Port 6"
    assert switch_port_6.port_idx == 6
    assert switch_port_6.poe_class == "Unknown"
    assert switch_port_6.poe_enable is False
    assert switch_port_6.poe_mode == "auto"
    assert switch_port_6.poe_power == "0.00"
    assert switch_port_6.poe_voltage == "0.00"
    assert switch_port_6.portconf_id == "5a32aa4ee4babd4452422ddd22222"
    assert switch_port_6.port_poe is True
    assert switch_port_6.up is False
    assert (
        switch_port_6.__repr__()
        == f"<{switch_port_6.name}: Poe {switch_port_6.poe_enable}>"
    )