[go: up one dir, main page]

File: test_nm.py

package info (click to toggle)
comitup 1.3.1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,092 kB
  • sloc: python: 2,109; sh: 30; makefile: 18
file content (143 lines) | stat: -rw-r--r-- 3,687 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
136
137
138
139
140
141
142
143
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.Ip4Config.Addresses = [['1.2.3.4', '5.6.7.8', '1.2.3.1']]

    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


@pytest.mark.parametrize("func", (
        nm.get_wifi_device,
        nm.get_active_ssid,
        nm.get_active_ip,
        nm.get_access_points,
    )
)
def test_none_dev(no_device_fxt, func):
    if func is nm.get_wifi_device:
        assert func(0) is None
    else:
        assert func(nm.get_wifi_device()) is None


def test_no_active_ssid(device_no_conn_fxt):
    assert nm.get_active_ssid(nm.get_wifi_device()) is None


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)