Exemplo n.º 1
0
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])
Exemplo n.º 2
0
 def setup(self):
     self.receiver = TestReceiver(1)
     self.protocol = MinimalLowerLayerProtocol()
     self.protocol.factory = MLLPFactory(self.receiver)
     self.protocol.transport = MockTransport()