File: test_base_connection.py

package info (click to toggle)
python-homematicip 1.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,796 kB
  • sloc: python: 15,164; makefile: 17; sh: 4
file content (70 lines) | stat: -rw-r--r-- 2,253 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
import pytest

from homematicip.base.base_connection import (
    ATTR_AUTH_TOKEN,
    ATTR_CLIENT_AUTH,
    BaseConnection,
)
from homematicip.connection import Connection
from homematicip.home import Home
from homematicip_demo.helper import no_ssl_verification


@pytest.fixture
def get_tokens():
    _auth_token = "abc"
    _access_point_id = "2114-F711-A123-0FF3-A634-32AB"
    return _auth_token, _access_point_id


@pytest.fixture
def get_base_connection() -> BaseConnection:
    return BaseConnection()


def test_client_characteristics(get_base_connection):
    _connection = get_base_connection

    assert (
        _connection.clientCharacteristics["clientCharacteristics"][
            "applicationIdentifier"
        ]
        == "homematicip-python"
    )
    assert _connection.clientCharacteristics["id"] is None
    assert _connection.headers[ATTR_AUTH_TOKEN] is None


def test_init_connection(get_base_connection, get_tokens):
    with pytest.raises(NotImplementedError):
        get_base_connection.init(get_tokens[1])


def test_set_auth_token(get_base_connection, get_tokens):
    get_base_connection.set_auth_token(get_tokens[0])
    assert get_base_connection.headers[ATTR_AUTH_TOKEN] == get_tokens[0]


AUTH_TOKEN_RESULT = "7D9FFAF54AB5A88BB3B7D9774EAF3193EAA87294AD86EC70214F87FADA2EB8DD886E92DC4013B11DA3761A81A0FA2BA69D712E17AAF177036E1ADDEE9EA6BB67"


def test_set_token_and_characteristics(get_base_connection, get_tokens):
    assert get_base_connection.headers[ATTR_CLIENT_AUTH] is None
    get_base_connection.set_token_and_characteristics(get_tokens[1])
    assert get_base_connection.headers[ATTR_CLIENT_AUTH] is not None
    assert get_base_connection.clientauth_token == AUTH_TOKEN_RESULT


def test_connection_nolookup():
    conn = Connection()
    conn.init("2114-F711-A123-0FF3-A634-32AB", False)
    assert conn._urlREST == "https://ps1.homematic.com:6969"
    assert conn._urlWebSocket == "wss://ps1.homematic.com:8888"


def test_connection_timeout(fake_home: Home):
    with no_ssl_verification():
        fake_home._connection._restCallRequestCounter = 2
        fake_home._connection._restCallTimout = 1
        result = fake_home._rest_call("fake/timeout")
        assert result["errorCode"] == "TIMEOUT"