Skip to content

Commit f66f464

Browse files
committed
Fix test coverage
1 parent e5c2615 commit f66f464

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed

.coveragerc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
[run]
22
omit =
3-
pymodbus/repl/*
3+
pymodbus/repl/*
4+
pymodbus/internal/*

pymodbus/framer/ascii_framer.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
import struct
2-
import socket
32
from binascii import b2a_hex, a2b_hex
43

54
from pymodbus.exceptions import ModbusIOException
65
from pymodbus.utilities import checkLRC, computeLRC
76
from pymodbus.framer import ModbusFramer, FRAME_HEADER, BYTE_ORDER
87

9-
# Python 2 compatibility.
10-
try:
11-
TimeoutError
12-
except NameError:
13-
TimeoutError = socket.timeout
148

159
ASCII_FRAME_HEADER = BYTE_ORDER + FRAME_HEADER
1610

test/test_framers.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,22 @@
1212
else: # Python 2
1313
from mock import Mock
1414

15+
1516
@pytest.fixture
1617
def rtu_framer():
1718
return ModbusRtuFramer(ClientDecoder())
1819

20+
1921
@pytest.fixture
2022
def ascii_framer():
2123
return ModbusAsciiFramer(ClientDecoder())
2224

25+
2326
@pytest.fixture
2427
def binary_framer():
2528
return ModbusBinaryFramer(ClientDecoder())
2629

30+
2731
@pytest.mark.parametrize("framer", [ModbusRtuFramer,
2832
ModbusAsciiFramer,
2933
ModbusBinaryFramer,
@@ -116,9 +120,12 @@ def test_populate_result(rtu_framer):
116120
assert result.unit_id == 255
117121

118122

119-
def test_process_incoming_packet(rtu_framer):
123+
@pytest.mark.parametrize('framer', [ascii_framer, rtu_framer, binary_framer])
124+
def test_process_incoming_packet(framer):
120125
def cb(res):
121126
return res
127+
# data = b''
128+
# framer.processIncomingPacket(data, cb, unit=1, single=False)
122129

123130

124131
def test_build_packet(rtu_framer):
@@ -160,4 +167,22 @@ def cb(res):
160167

161168
def test_get_raw_frame(rtu_framer):
162169
rtu_framer._buffer = b'\x00\x01\x00\x01\x00\n\xec\x1c'
163-
assert rtu_framer.getRawFrame() == rtu_framer._buffer
170+
assert rtu_framer.getRawFrame() == rtu_framer._buffer
171+
172+
173+
def test_validate_unit_id(rtu_framer):
174+
rtu_framer.populateHeader( b'\x00\x01\x00\x01\x00\n\xec\x1c')
175+
assert rtu_framer._validate_unit_id([0], False)
176+
assert rtu_framer._validate_unit_id([1], True)
177+
178+
179+
@pytest.mark.parametrize('data', [b':010100010001FC\r\n',
180+
b''])
181+
def test_decode_ascii_data(ascii_framer, data):
182+
data = ascii_framer.decode_data(data)
183+
assert isinstance(data, dict)
184+
if data:
185+
assert data.get("unit") == 1
186+
assert data.get("fcode") == 1
187+
else:
188+
assert not data

0 commit comments

Comments
 (0)