Skip to content

Commit a622e14

Browse files
committed
Added test for wrapper
1 parent e907480 commit a622e14

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

src/senaite/astm/tests/data/mini_vidas_mock.txt

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
1H|\\^&|||miniVidas^biomerieux^1.0.0|||||||||2024102518350058
2+
2P|1||||test_patient|||||||||||||||||||||||||||||4F
3+
3O|1|Z1G021SCR||Anti-HBc Total II||||||||||||||||||20241025183500||||||||D5
4+
4R|1|HBCT|0.05|||||Positif||||20241025183500|96
5+
5L|1|N08

src/senaite/astm/tests/test_mini_vidas.py

+67
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from senaite.astm.protocol import ASTMProtocol
99
from senaite.astm.tests.base import ASTMTestBase
1010
from senaite.astm.wrapper import Wrapper
11+
from senaite.astm.instruments import biomerieux_mini_vidas
1112

1213
# from senaite.astm.instruments import spotchem_el
1314

@@ -23,9 +24,14 @@ async def asyncSetUp(self):
2324
path = self.get_instrument_file_path("mini_vidas.txt")
2425
self.lines = self.read_file_lines(path)
2526

27+
# Test fixture
28+
path = self.get_instrument_file_path("mini_vidas_mock.txt")
29+
self.mocklines = self.read_file_lines(path)
30+
2631
# Mock transport and protocol objects
2732
self.transport = self.get_mock_transport()
2833
self.protocol.transport = self.transport
34+
self.mapping = biomerieux_mini_vidas.get_mapping()
2935

3036
def get_mock_transport(self, ip="127.0.0.1", port=12345):
3137
transport = MagicMock()
@@ -67,3 +73,64 @@ def test_decode_messages(self):
6773

6874
for key in keys:
6975
self.assertTrue(key in data)
76+
77+
def test_header_record(self):
78+
"""Test the Header Record wrapper
79+
"""
80+
wrapper = Wrapper(self.mocklines)
81+
data = wrapper.to_dict()
82+
record = data["H"][0]
83+
84+
# test sender name
85+
self.assertEqual(record["sender"]["name"].strip(), "miniVidas")
86+
# test sender manufacturer
87+
self.assertEqual(record["sender"]["manufacturer"], "biomerieux")
88+
# test sender version
89+
self.assertEqual(record["sender"]["version"], "1.0.0")
90+
91+
# test the timestamp
92+
self.assertEqual(record["timestamp"], "20241025183500")
93+
94+
def test_patient_records(self):
95+
"""Test the Result Record wrapper
96+
"""
97+
wrapper = Wrapper(self.mocklines)
98+
data = wrapper.to_dict()
99+
records = data["P"]
100+
101+
self.assertEqual(len(records), 1)
102+
patient = records[0]
103+
self.assertEqual(patient.get("name"), "test_patient")
104+
105+
def test_order_records(self):
106+
"""Test the Result Record wrapper
107+
"""
108+
wrapper = Wrapper(self.mocklines)
109+
data = wrapper.to_dict()
110+
records = data["O"]
111+
112+
self.assertEqual(len(records), 1)
113+
114+
order = records[0]
115+
116+
self.assertEqual(order.get("sample_id"), "Z1G021SCR")
117+
self.assertEqual(order.get("test"), "Anti-HBc Total II")
118+
119+
def test_result_records(self):
120+
"""Test the Result Record wrapper
121+
"""
122+
wrapper = Wrapper(self.mocklines)
123+
data = wrapper.to_dict()
124+
records = data["R"]
125+
126+
self.assertEqual(len(records), 1)
127+
128+
results = [
129+
["HBCT", "0.05"],
130+
]
131+
for idx, record in enumerate(records):
132+
values = [
133+
record.get("test"),
134+
record.get("value"),
135+
]
136+
self.assertEqual(values, results[idx])

0 commit comments

Comments
 (0)