File: test_nm.py

package info (click to toggle)
comitup 1.43-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,252 kB
  • sloc: python: 3,093; javascript: 1,261; sh: 95; makefile: 34
file content (135 lines) | stat: -rw-r--r-- 3,243 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
134
135
# Copyright (c) 2017-2019 David Steele <dsteele@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0-or-later
# License-Filename: LICENSE

from unittest.mock import Mock, patch

import pytest

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"  # type: ignore


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


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()
    )  # type: ignore
    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)