def test_drop_link(self): protocol = yield self.get_protocol() transport = yield connect_transport(protocol) [bind_pdu] = yield wait_for_pdus(transport, 1) self.assertCommand(bind_pdu, 'bind_transceiver') self.assertFalse(protocol.is_bound()) self.assertEqual(protocol.state, EsmeTransceiver.OPEN_STATE) self.assertFalse(transport.disconnecting) self.clock.advance(protocol.config.smpp_bind_timeout + 1) [unbind_pdu] = yield wait_for_pdus(transport, 1) self.assertCommand(unbind_pdu, 'unbind') unbind_resp_pdu = UnbindResp(sequence_number=seq_no(unbind_pdu)) yield protocol.on_pdu(unpack_pdu(unbind_resp_pdu.get_bin())) self.assertTrue(transport.disconnecting)
def test_enquire_link_looping(self): transport, protocol = yield self.setup_bind(clear=False) enquire_link_resp = EnquireLinkResp(1) protocol.clock.advance(protocol.idle_timeout - 1) protocol.dataReceived(enquire_link_resp.get_bin()) protocol.clock.advance(protocol.idle_timeout - 1) self.assertFalse(transport.disconnecting) protocol.clock.advance(1) [unbind_pdu] = yield wait_for_pdus(transport, 1) self.assertCommand(unbind_pdu, 'unbind') unbind_resp_pdu = UnbindResp(sequence_number=seq_no(unbind_pdu)) yield protocol.on_pdu(unpack_pdu(unbind_resp_pdu.get_bin())) self.assertTrue(transport.disconnecting)