Skip to content

Commit 213340b

Browse files
committed
more tests
1 parent 42fccd4 commit 213340b

File tree

1 file changed

+57
-11
lines changed

1 file changed

+57
-11
lines changed

tests/test_utils.py

Lines changed: 57 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
from unittest.mock import Mock, patch
22

33
import pytest
4+
from streaming_data_types.forwarder_config_update_fc00 import (
5+
ConfigurationUpdate,
6+
StreamInfo,
7+
)
48

59
from saluki.utils import (
610
parse_kafka_uri,
@@ -51,30 +55,72 @@ def test_deserialising_empty_message(mock_message):
5155
assert (None, "") == __try_to_deserialise_message(b"")
5256

5357

54-
def test_deserialising_message_with_invalid_schema_falls_back_to_raw_bytes_decode(
55-
mock_message,
56-
):
57-
pass
58+
def test_deserialising_message_with_invalid_schema_falls_back_to_raw_bytes_decode():
59+
assert __try_to_deserialise_message(b"blah") == (None, "blah")
5860

5961

6062
def test_deserialising_message_which_raises_does_not_stop_loop(mock_message):
61-
pass
63+
with patch("saluki.utils.logger") as logger:
64+
ok_message = Mock(spec=Message)
65+
ok_message.value.return_value = b""
66+
ok_message.error.return_value = False
67+
ok_message.timestamp.return_value = 1, 1
6268

69+
mock_message.value.side_effect = Exception
70+
mock_message.error.return_value = False
71+
mock_message.timestamp.return_value = 1, 1
72+
73+
_deserialise_and_print_messages([mock_message, ok_message], None)
74+
assert logger.info.call_count == 1
6375

64-
def test_schema_that_isnt_in_deserialiser_list(mock_message):
65-
pass
6676

77+
def test_message_that_has_valid_schema_but_empty_payload():
78+
with pytest.raises(Exception):
79+
# Empty fc00 message - valid schema but not valid payload
80+
__try_to_deserialise_message(b" fc00")
6781

68-
def test_message_that_has_valid_schema_but_empty_payload(mock_message):
69-
pass
82+
83+
def test_schema_that_isnt_in_deserialiser_list(mock_message):
84+
assert __try_to_deserialise_message(b" blah123") == ("blah", " \t blah123")
7085

7186

7287
def test_message_that_has_valid_schema_but_invalid_payload(mock_message):
73-
pass
88+
with pytest.raises(Exception):
89+
__try_to_deserialise_message(b" fc0012345")
7490

7591

7692
def test_message_that_has_valid_schema_and_valid_payload(mock_message):
77-
pass
93+
assert __try_to_deserialise_message(
94+
b"\x10\x00\x00\x00\x66\x63\x30\x30\x08\x00\x0c\x00\x06\x00\x08\x00\x08\x00\x00\x00\x00\x00\x01\x00\x04\x00\x00\x00\x03\x00\x00\x00\x0c\x00\x00\x00\x2c\x00\x00\x00\x4c\x00\x00\x00\xea\xff\xff\xff\x00\x00\x00\x00\x7c\x00\x00\x00\x6c\x00\x00\x00\x50\x00\x00\x00\x01\x00\x0e\x00\x16\x00\x08\x00\x0c\x00\x10\x00\x14\x00\x04\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x8c\x00\x00\x00\x70\x00\x00\x00\x01\x00\x0e\x00\x18\x00\x08\x00\x0c\x00\x10\x00\x16\x00\x04\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xbc\x00\x00\x00\xac\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x11\x00\x00\x00\x4e\x44\x57\x32\x36\x37\x32\x5f\x73\x61\x6d\x70\x6c\x65\x45\x6e\x76\x00\x00\x00\x04\x00\x00\x00\x66\x31\x34\x34\x00\x00\x00\x00\x1b\x00\x00\x00\x54\x45\x3a\x4e\x44\x57\x32\x36\x37\x32\x3a\x43\x53\x3a\x53\x42\x3a\x4d\x42\x42\x49\x5f\x42\x4c\x4f\x43\x4b\x00\x11\x00\x00\x00\x4e\x44\x57\x32\x36\x37\x32\x5f\x73\x61\x6d\x70\x6c\x65\x45\x6e\x76\x00\x00\x00\x04\x00\x00\x00\x66\x31\x34\x34\x00\x00\x00\x00\x19\x00\x00\x00\x54\x45\x3a\x4e\x44\x57\x32\x36\x37\x32\x3a\x43\x53\x3a\x53\x42\x3a\x42\x49\x5f\x42\x4c\x4f\x43\x4b\x00\x00\x00\x11\x00\x00\x00\x4e\x44\x57\x32\x36\x37\x32\x5f\x73\x61\x6d\x70\x6c\x65\x45\x6e\x76\x00\x00\x00\x04\x00\x00\x00\x66\x31\x34\x34\x00\x00\x00\x00\x1c\x00\x00\x00\x54\x45\x3a\x4e\x44\x57\x32\x36\x37\x32\x3a\x43\x53\x3a\x53\x42\x3a\x46\x4c\x4f\x41\x54\x5f\x42\x4c\x4f\x43\x4b\x00\x00\x00\x00"
95+
) == (
96+
"fc00",
97+
ConfigurationUpdate(
98+
config_change=1,
99+
streams=[
100+
StreamInfo(
101+
channel="TE:NDW2672:CS:SB:MBBI_BLOCK",
102+
schema="f144",
103+
topic="NDW2672_sampleEnv",
104+
protocol=1,
105+
periodic=0,
106+
),
107+
StreamInfo(
108+
channel="TE:NDW2672:CS:SB:BI_BLOCK",
109+
schema="f144",
110+
topic="NDW2672_sampleEnv",
111+
protocol=1,
112+
periodic=0,
113+
),
114+
StreamInfo(
115+
channel="TE:NDW2672:CS:SB:FLOAT_BLOCK",
116+
schema="f144",
117+
topic="NDW2672_sampleEnv",
118+
protocol=1,
119+
periodic=0,
120+
),
121+
],
122+
),
123+
)
78124

79125

80126
def test_parse_timestamp_with_valid_timestamp(mock_message):

0 commit comments

Comments
 (0)