File: session_status_test.py

package info (click to toggle)
python-xknx 3.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,012 kB
  • sloc: python: 39,710; javascript: 8,556; makefile: 27; sh: 12
file content (32 lines) | stat: -rw-r--r-- 1,060 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
"""Unit test for KNX/IP SessionStatus objects."""

from xknx.knxip import KNXIPFrame, SessionStatus
from xknx.knxip.knxip_enum import SecureSessionStatusCode


class TestKNXIPSessionStatus:
    """Test class for KNX/IP SessionStatus objects."""

    def test_session_status(self) -> None:
        """Test parsing and streaming session status KNX/IP packet."""
        raw = bytes.fromhex(
            "06 10 09 54 00 08"  # KNXnet/IP header
            "00"  # status code 00h STATUS_AUTHENTICATION_SUCCESS
            "00"  # reserved
        )
        knxipframe, _ = KNXIPFrame.from_knx(raw)

        assert isinstance(knxipframe.body, SessionStatus)
        assert (
            knxipframe.body.status
            == SecureSessionStatusCode.STATUS_AUTHENTICATION_SUCCESS
        )

        assert knxipframe.to_knx() == raw

        session_status = SessionStatus(
            status=SecureSessionStatusCode.STATUS_AUTHENTICATION_SUCCESS
        )
        knxipframe2 = KNXIPFrame.init_from_body(session_status)

        assert knxipframe2.to_knx() == raw