8
8
from senaite .astm .protocol import ASTMProtocol
9
9
from senaite .astm .tests .base import ASTMTestBase
10
10
from senaite .astm .wrapper import Wrapper
11
+ from senaite .astm .instruments import biomerieux_mini_vidas
11
12
12
13
# from senaite.astm.instruments import spotchem_el
13
14
@@ -23,9 +24,14 @@ async def asyncSetUp(self):
23
24
path = self .get_instrument_file_path ("mini_vidas.txt" )
24
25
self .lines = self .read_file_lines (path )
25
26
27
+ # Test fixture
28
+ path = self .get_instrument_file_path ("mini_vidas_mock.txt" )
29
+ self .mocklines = self .read_file_lines (path )
30
+
26
31
# Mock transport and protocol objects
27
32
self .transport = self .get_mock_transport ()
28
33
self .protocol .transport = self .transport
34
+ self .mapping = biomerieux_mini_vidas .get_mapping ()
29
35
30
36
def get_mock_transport (self , ip = "127.0.0.1" , port = 12345 ):
31
37
transport = MagicMock ()
@@ -67,3 +73,64 @@ def test_decode_messages(self):
67
73
68
74
for key in keys :
69
75
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