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
|
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals
import pytest
import json
from ssdpy.cli import client as client_cli
def test_client_cli_invalid_arguments():
with pytest.raises(SystemExit):
client_cli.parse_args(("--invalid-argument", ))
def test_version():
with pytest.raises(SystemExit):
client_cli.parse_args(("--version", ))
def test_verbose():
args = client_cli.parse_args(("ssdp:test", "-v"))
assert args.verbose is True
args = client_cli.parse_args(("ssdp:test", "--verbose"))
assert args.verbose is True
def test_no_st():
with pytest.raises(SystemExit):
client_cli.parse_args((""))
def test_basic_discovery(mocker):
mocker.patch.object(client_cli, "SSDPClient")
client_cli.main(("ssdp:test", ))
client_cli.SSDPClient.assert_called_once_with(
proto="ipv4",
port=1900,
ttl=2,
iface=None,
timeout=5,
address=None,
)
# TODO: Check that client.m_search has been called.
def test_client_discovery_ipv6(mocker):
mocker.patch.object(client_cli, "SSDPClient")
client_cli.main(("ssdp:test", "--ipv6"))
client_cli.SSDPClient.assert_called_once_with(
proto="ipv6",
port=1900,
ttl=2,
iface=None,
timeout=5,
address=None,
)
mocker.patch.object(client_cli, "SSDPClient")
client_cli.main(("ssdp:test", "-6"))
client_cli.SSDPClient.assert_called_once_with(
proto="ipv6",
port=1900,
ttl=2,
iface=None,
timeout=5,
address=None,
)
def test_client_discovery_all_args(mocker):
mocker.patch.object(client_cli, "SSDPClient")
client_cli.main(
(
"ssdp:test",
"-v",
"-6",
"-t",
"100",
"-o",
"200",
"-i",
"test_iface",
"-p",
"0",
"-m",
"5",
)
)
client_cli.SSDPClient.assert_called_once_with(
proto="ipv6",
port=0,
ttl=100,
iface=b"test_iface",
timeout=200,
address=None,
)
def test_client_json_output(capsys):
client_cli.main(
("ssdp:all", "-j")
)
output = capsys.readouterr()
json.loads(output.out)
|