Skip to content

Commit aa82848

Browse files
committed
Add test
1 parent e526fde commit aa82848

File tree

1 file changed

+80
-70
lines changed

1 file changed

+80
-70
lines changed

python/tests/sbp/test_table.py

Lines changed: 80 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -8,95 +8,105 @@
88
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
99
# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
1010

11-
from sbp.msg import SBP
12-
from sbp.table import _SBP_TABLE, dispatch
11+
import warnings
12+
1313
from sbp import acquisition as acq
1414
from sbp import bootload as boot
15+
from sbp import ext_events as ext_events
1516
from sbp import file_io as file_io
1617
from sbp import flash as flash
18+
from sbp import imu as imu
19+
from sbp import integrity as integrity
1720
from sbp import linux as linux
1821
from sbp import logging as log
22+
from sbp import mag as mag
1923
from sbp import navigation as nav
24+
from sbp import ndb as ndb
2025
from sbp import observation as obs
26+
from sbp import orientation as orientation
2127
from sbp import piksi as piksi
28+
from sbp import profiling as profiling
29+
from sbp import sbas as sbas
2230
from sbp import settings as settings
31+
from sbp import signing as signing
32+
from sbp import solution_meta as solmeta
33+
from sbp import ssr as ssr
2334
from sbp import system as sys
35+
from sbp import telemetry as telemetry
2436
from sbp import tracking as trac
2537
from sbp import user as user
26-
from sbp import imu as imu
27-
from sbp import integrity as integrity
28-
from sbp import ext_events as ext_events
29-
from sbp import ndb as ndb
30-
from sbp import mag as mag
3138
from sbp import vehicle as vehicle
32-
from sbp import orientation as orientation
33-
from sbp import sbas as sbas
34-
from sbp import ssr as ssr
35-
from sbp import solution_meta as solmeta
36-
from sbp import signing as signing
37-
from sbp import telemetry as telemetry
38-
from sbp import profiling as profiling
39+
from sbp.msg import SBP
40+
from sbp.table import _SBP_TABLE, dispatch
3941

40-
import warnings
4142

4243
def test_table_count():
43-
"""
44-
Test number of available messages to deserialize.
44+
"""
45+
Test number of available messages to deserialize.
46+
47+
"""
48+
number_of_messages = 240
49+
assert len(_SBP_TABLE) == number_of_messages
50+
4551

46-
"""
47-
number_of_messages = 239
48-
assert len(_SBP_TABLE) == number_of_messages
52+
def test_table_unique_count():
53+
"""
54+
Test number of messages in packages equals total number of messages.
55+
"""
56+
number_of_messages = (
57+
len(acq.msg_classes)
58+
+ len(boot.msg_classes)
59+
+ len(file_io.msg_classes)
60+
+ len(flash.msg_classes)
61+
+ len(linux.msg_classes)
62+
+ len(log.msg_classes)
63+
+ len(nav.msg_classes)
64+
+ len(obs.msg_classes)
65+
+ len(piksi.msg_classes)
66+
+ len(settings.msg_classes)
67+
+ len(sys.msg_classes)
68+
+ len(trac.msg_classes)
69+
+ len(user.msg_classes)
70+
+ len(imu.msg_classes)
71+
+ len(integrity.msg_classes)
72+
+ len(ext_events.msg_classes)
73+
+ len(ndb.msg_classes)
74+
+ len(mag.msg_classes)
75+
+ len(vehicle.msg_classes)
76+
+ len(orientation.msg_classes)
77+
+ len(sbas.msg_classes)
78+
+ len(ssr.msg_classes)
79+
+ len(solmeta.msg_classes)
80+
+ len(signing.msg_classes)
81+
+ len(telemetry.msg_classes)
82+
+ len(profiling.msg_classes)
83+
)
84+
assert len(_SBP_TABLE) == number_of_messages
4985

50-
def test_table_unqiue_count():
51-
"""
52-
Test number of messages in packages equals total number of messages.
53-
"""
54-
number_of_messages = (len(acq.msg_classes)
55-
+ len(boot.msg_classes)
56-
+ len(file_io.msg_classes)
57-
+ len(flash.msg_classes)
58-
+ len(linux.msg_classes)
59-
+ len(log.msg_classes)
60-
+ len(nav.msg_classes)
61-
+ len(obs.msg_classes)
62-
+ len(piksi.msg_classes)
63-
+ len(settings.msg_classes)
64-
+ len(sys.msg_classes)
65-
+ len(trac.msg_classes)
66-
+ len(user.msg_classes)
67-
+ len(imu.msg_classes)
68-
+ len(integrity.msg_classes)
69-
+ len(ext_events.msg_classes)
70-
+ len(ndb.msg_classes)
71-
+ len(mag.msg_classes)
72-
+ len(vehicle.msg_classes)
73-
+ len(orientation.msg_classes)
74-
+ len(sbas.msg_classes)
75-
+ len(ssr.msg_classes)
76-
+ len(solmeta.msg_classes)
77-
+ len(signing.msg_classes)
78-
+ len(telemetry.msg_classes)
79-
+ len(profiling.msg_classes)
80-
)
81-
assert len(_SBP_TABLE) == number_of_messages
8286

8387
def test_available_messages():
84-
"""
85-
Simple example with a limited dispatch table.
88+
"""
89+
Simple example with a limited dispatch table.
8690
87-
"""
88-
table = {acq.SBP_MSG_ACQ_RESULT_DEP_A: acq.MsgAcqResultDepA,
89-
log.SBP_MSG_PRINT_DEP: log.MsgPrintDep}
90-
msg = SBP(msg_type=0x15, sender=1219, length=13,
91-
payload=b'\x92$yA\x00\x00\xbcC\x81\xc1\xf9\xc5\x1d')
92-
# TODO (Buro): Replace this message constructor once generated SBP
93-
# can support kwargs for constructor, instead of requiring SBP
94-
# object.
95-
assert dispatch(msg, table) == acq.MsgAcqResultDepA(msg)
96-
msg = SBP(msg_type=0xB0, sender=1219, length=4, payload='v1.2', crc=0xCE01)
97-
with warnings.catch_warnings(record=True) as w:
98-
dispatch(msg, table)
99-
warnings.simplefilter("always")
100-
assert len(w) == 1
101-
assert issubclass(w[0].category, RuntimeWarning)
102-
assert str(w[0].message).find("No message found for msg_type id 176 for msg*")
91+
"""
92+
table = {
93+
acq.SBP_MSG_ACQ_RESULT_DEP_A: acq.MsgAcqResultDepA,
94+
log.SBP_MSG_PRINT_DEP: log.MsgPrintDep,
95+
}
96+
msg = SBP(
97+
msg_type=0x15,
98+
sender=1219,
99+
length=13,
100+
payload=b"\x92$yA\x00\x00\xbcC\x81\xc1\xf9\xc5\x1d",
101+
)
102+
# TODO (Buro): Replace this message constructor once generated SBP
103+
# can support kwargs for constructor, instead of requiring SBP
104+
# object.
105+
assert dispatch(msg, table) == acq.MsgAcqResultDepA(msg)
106+
msg = SBP(msg_type=0xB0, sender=1219, length=4, payload="v1.2", crc=0xCE01)
107+
with warnings.catch_warnings(record=True) as w:
108+
dispatch(msg, table)
109+
warnings.simplefilter("always")
110+
assert len(w) == 1
111+
assert issubclass(w[0].category, RuntimeWarning)
112+
assert str(w[0].message).find("No message found for msg_type id 176 for msg*")

0 commit comments

Comments
 (0)