File: test_nm.py

package info (click to toggle)
comitup 1.38-2~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,284 kB
  • sloc: python: 3,042; javascript: 1,261; sh: 98; makefile: 33
file content (133 lines) | stat: -rw-r--r-- 3,172 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import pytest

# Copyright (c) 2017-2019 David Steele <dsteele@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0-or-later
# License-Filename: LICENSE
from mock import Mock, patch

from comitup import nm


@pytest.fixture()
def no_device_fxt(monkeypatch):
    monkeypatch.setattr(
        "comitup.nm.nm.NetworkManager.GetDevices", Mock(return_value=[])
    )
    return None


@pytest.fixture()
def device_no_conn_fxt(monkeypatch):
    device = Mock()
    device.ActiveConnection = None
    monkeypatch.setattr(
        "comitup.nm.nm.NetworkManager.GetDevices", Mock(return_value=[device])
    )
    return None


@pytest.fixture()
def device_fxt(monkeypatch):
    device = Mock()
    device.DeviceType = 2
    device.ActiveConnection.Connection.GetSettings.return_value = {
        "802-11-wireless": {
            "ssid": "myssid",
        }
    }
    device.Ip4Address = "1.2.3.4"

    point = Mock()
    point.Ssid = "myssid"
    point.Strength = 100
    getAllAccessPoints = Mock()
    getAllAccessPoints.GetAllAccessPoints.return_value = [point]
    device.SpecificDevice.return_value = getAllAccessPoints

    monkeypatch.setattr(
        "comitup.nm.nm.NetworkManager.GetDevices", Mock(return_value=[device])
    )

    return None


@pytest.fixture()
def no_connections_fxt(monkeypatch):
    monkeypatch.setattr(
        "comitup.nm.nm.Settings.ListConnections", Mock(return_value=[])
    )
    return None


@pytest.fixture()
def connections_fxt(monkeypatch):
    connection = Mock()
    connection.GetSettings.return_value = {
        "802-11-wireless": {
            "ssid": "myssid",
        }
    }

    monkeypatch.setattr(
        "comitup.nm.nm.Settings.ListConnections",
        Mock(return_value=[connection]),
    )

    return connection


def test_get_active_ssid(device_fxt):
    assert nm.get_active_ssid(nm.get_wifi_device()) == "myssid"


def test_get_active_ip(device_fxt):
    assert nm.get_active_ip(nm.get_wifi_device()) == "1.2.3.4"


def test_no_conn(no_connections_fxt):
    assert nm.get_connection_by_ssid("ssid") is None


def test_get_connection_by_ssid(connections_fxt):
    assert nm.get_connection_by_ssid("myssid")
    assert not nm.get_connection_by_ssid("bogusssid")


def test_del_connection_by_ssid(connections_fxt):
    nm.del_connection_by_ssid("myssid")
    assert connections_fxt.Delete.called


@patch("comitup.nm.get_wifi_device")
def test_activate_connection_by_id(get_dev, monkeypatch, connections_fxt):
    activate = Mock()
    monkeypatch.setattr(
        "comitup.nm.nm.NetworkManager.ActivateConnection", activate
    )

    nm.activate_connection_by_ssid("myssid", nm.get_wifi_device())
    assert activate.called


def test_make_hotspot(monkeypatch):
    addconnection = Mock()
    monkeypatch.setattr("comitup.nm.nm.Settings.AddConnection", addconnection)

    nm.make_hotspot()

    assert addconnection.called


def test_make_connection_for(monkeypatch):

    addconnection = Mock()
    monkeypatch.setattr("comitup.nm.nm.Settings.AddConnection", addconnection)

    nm.make_connection_for("anssid", "password")

    assert addconnection.called


def test_do_listaccess(device_fxt):
    nm.do_listaccess(None)