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
|
# Copyright (c) 2017-2019 David Steele <dsteele@gmail.com>
#
# SPDX-License-Identifier: GPL-2.0-or-later
# License-Filename: LICENSE
import importlib
from collections import namedtuple
from unittest.mock import Mock
import dbus.service
import pytest
def nullwrapper(*args, **kwargs):
def _nullwrapper(fn):
def wrapper(*wargs, **wkwargs):
return fn(*wargs, **wkwargs)
return wrapper
return _nullwrapper
dbus.service.method = nullwrapper
sm = importlib.import_module("comitup.statemgr")
@pytest.fixture()
def statemgr_fxt(monkeypatch, request):
monkeypatch.setattr("dbus.service.BusName", Mock())
monkeypatch.setattr("dbus.service.Object", Mock())
monkeypatch.setattr("dbus.service.Object", Mock())
save_state = sm.states.com_state
save_conn = sm.states.connection
def fin():
sm.states.com_state = save_state
sm.states.connection = save_conn
request.addfinalizer(fin)
sm.states.com_state = "CONNECTED"
sm.states.connection = "connection"
def test_sm_none(statemgr_fxt):
pass
def test_sm_state(statemgr_fxt):
obj = sm.Comitup()
assert obj.state() == ["CONNECTED", "connection"]
@pytest.fixture()
def ap_name_fxt(monkeypatch):
monkeypatch.setattr("socket.gethostname", Mock(return_value="host"))
return None
Case = namedtuple("Case", ["input", "out"])
@pytest.mark.parametrize(
"case",
[
Case("comitup-<nnn>", "comitup-123"),
Case("<n>", "1"),
Case("<nn>", "12"),
Case("<nnn>", "123"),
Case("<nnnn>", "1234"),
Case("<nnnnn>", "<nnnnn>"),
Case("A<n>", "A1"),
Case("<n>A", "1A"),
Case("<hostname>", "host"),
Case("<hostname>-<n>", "host-1"),
Case("<bogus>", "<bogus>"),
],
)
def test_expand_ap(ap_name_fxt, case):
assert sm.expand_ap(case.input, "1234") == case.out
|