class TestMinimalLowerLayerProtocol(): def setup(self): self.receiver = TestReceiver(1) self.protocol = MinimalLowerLayerProtocol() self.protocol.factory = MLLPFactory(self.receiver) self.protocol.transport = MockTransport() def test_parse_message(self): self.protocol.dataReceived('\x0b' + HL7_MESSAGE + '\x1c\x0d') eq_(self.receiver.messages, [HL7_MESSAGE]) eq_(self.protocol.transport.msg, '\x0b' + EXPECTED_ACK.format(self._get_msg_datetime(), 'AA') + '\x1c\x0d') def test_uncaught_error(self): 'throw a random exception, make sure Errback is used' def raise_exception(): raise Exception self.receiver.handleMessage = raise_exception self.protocol.dataReceived('\x0b' + HL7_MESSAGE + '\x1c\x0d') eq_(self.protocol.transport.msg, '\x0b' + EXPECTED_ACK.format(self._get_msg_datetime(), 'AR') + '\x1c\x0d') def test_parse_message_unicode(self): message = HL7_MESSAGE.replace('BLDG4', 'x\x82y') self.protocol.dataReceived('\x0b' + message + '\x1c\x0d') expected_message = unicode(HL7_MESSAGE).replace(u'BLDG4', u'xy') eq_(self.receiver.messages, [expected_message]) expected_ack = EXPECTED_ACK.replace('BLDG4', 'xy') eq_(self.protocol.transport.msg, '\x0b' + expected_ack.format(self._get_msg_datetime(), 'AA') + '\x1c\x0d') def _get_msg_datetime(self): msg = hl7.parse(self.protocol.transport.msg) return unicode(msg.segment('MSH')[6])
def setup(self): self.receiver = TestReceiver(1) self.protocol = MinimalLowerLayerProtocol() self.protocol.factory = MLLPFactory(self.receiver) self.protocol.transport = MockTransport()