-
Notifications
You must be signed in to change notification settings - Fork 88
Expand file tree
/
Copy pathtest_utils.py
More file actions
46 lines (33 loc) · 1.34 KB
/
test_utils.py
File metadata and controls
46 lines (33 loc) · 1.34 KB
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
import sys
import logging
from logging import getLogger
from umodbus.utils import (log_to_stream, unpack_mbap, pack_mbap,
pack_exception_pdu,
get_function_code_from_request_pdu)
def test_log_to_stream():
""" Test if handler is added correctly. """
log = getLogger('uModbus')
# NullHandler is attached.
assert len(log.handlers) == 1
log_to_stream()
assert len(log.handlers) == 2
handler = log.handlers[1]
assert handler.stream == sys.stderr
assert handler.level == logging.NOTSET
def test_unpack_mbap():
""" MBAP should contain correct values for Transaction identifier, Protocol
identifier, Length and Unit identifier.
"""
assert unpack_mbap(b'\x00\x08\x00\x00\x00\x06\x01') == (8, 0, 6, 1)
def test_pack_mbap():
""" Byte array should contain correct encoding of Transaction identifier,
Protocol identifier, Length and Unit identifier.
"""
assert pack_mbap(8, 0, 6, 1) == b'\x00\x08\x00\x00\x00\x06\x01'
def test_pack_exception_pdu():
""" Exception PDU should correct encoding of error code and function code.
"""
assert pack_exception_pdu(1, 1) == b'\x81\x01'
def test_get_function_code_from_request_pdu():
""" Get correct function code from PDU. """
assert get_function_code_from_request_pdu(b'\x01\x00d\x00\x03') == 1