Skip to content

Commit 251600b

Browse files
committed
tests: full cov for vanetza
1 parent decf7e9 commit 251600b

File tree

2 files changed

+55
-8
lines changed

2 files changed

+55
-8
lines changed

src/artery/bindings/python/vanetza/net/osi_layer.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,17 @@ class _OsiLayer(enum.IntEnum):
1515
Presentation = 6
1616
Application = 7
1717

18-
def _min_osi_layer():
19-
return _OsiLayer.Physical
18+
def _min_osi_layer() -> _OsiLayer:
19+
...
2020

21-
def _max_osi_layer():
22-
return _OsiLayer.Application
21+
def _max_osi_layer() -> _OsiLayer:
22+
...
2323

2424
def _distance(start: _OsiLayer, end: _OsiLayer) -> int:
25-
return max(int(start) - int(end), 0)
25+
...
2626

2727
def _num_osi_layers(start: _OsiLayer, end: _OsiLayer) -> int:
28-
d = distance(start, end)
29-
return d + 1 if d > 0 else d
28+
...
3029

3130

3231
if TYPE_CHECKING:

src/artery/bindings/tests/test_vanetza_net.py

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
assert not len(w), 'expected vanetza stub imports to pass without any error'
1515

1616

17-
from vanetza.net import ByteBufferConvertible, CohesivePacket, OsiLayer
17+
from vanetza.net import ByteBufferConvertible, CohesivePacket, ChunkPacket, OsiLayer, \
18+
osi_layer_iterable, max_osi_layer, min_osi_layer, num_osi_layers, osi_layer_list
1819

1920

2021
def test_buffer_convertable():
@@ -69,3 +70,50 @@ def test_cohesive_packet():
6970

7071
packet.trim(OsiLayer.Link, 0)
7172
assert packet.size() == part1
73+
74+
75+
def test_osi_layer_aux():
76+
start, end = OsiLayer.Presentation, OsiLayer.Application
77+
diff = 2
78+
79+
assert len(list(osi_layer_iterable(start, end))) == diff
80+
assert len(osi_layer_list(start, end)) == diff
81+
82+
assert max_osi_layer() == OsiLayer.Application
83+
assert min_osi_layer() == OsiLayer.Physical
84+
85+
assert num_osi_layers(start, end) == diff
86+
87+
88+
def test_chunk_packet():
89+
def yield_size(iterable):
90+
return map(lambda p: len(p), iterable)
91+
92+
def yield_encoded(iterable):
93+
return map(lambda p: p.encode(), iterable)
94+
95+
part1, part2, part3 = yield_encoded(('hello', ' ', 'world!'))
96+
97+
packet = ChunkPacket()
98+
for layer, buffer in zip(
99+
osi_layer_list(OsiLayer.Physical, OsiLayer.Network), (part1, part2, part3)
100+
):
101+
packet[layer] = ByteBufferConvertible(buffer)
102+
103+
assert packet.size() == sum(yield_size((part1, part2, part3)))
104+
assert packet.size_range(OsiLayer.Physical, OsiLayer.Link) == sum(yield_size((part1, part2)))
105+
106+
new_part3 = part3 + '!'.encode()
107+
packet.set_layer(OsiLayer.Network, ByteBufferConvertible(new_part3))
108+
109+
assert packet[OsiLayer.Network].convert() == new_part3
110+
111+
new_packet = packet.extract(OsiLayer.Physical, OsiLayer.Link)
112+
assert new_packet.size() == sum(yield_size((part1, part2)))
113+
114+
part4, part5 = yield_encoded(('!', '!'))
115+
new_packet[OsiLayer.Presentation] = ByteBufferConvertible(part4)
116+
new_packet[OsiLayer.Application] = ByteBufferConvertible(part5)
117+
118+
packet = packet.merge(new_packet, OsiLayer.Presentation, OsiLayer.Application)
119+
assert packet.size() == sum(yield_size((new_part3, part4, part5)))

0 commit comments

Comments
 (0)