Example #1
0
class TxGSMBaseTestCase(TestCase):
    def setUp(self):
        self.modem = TxGSMProtocol()
        self.modem.verbose = True
        self.modem_transport = proto_helpers.StringTransport()
        self.modem.makeConnection(self.modem_transport)

    def reply(self, data, delimiter=None, modem=None):
        modem = modem or self.modem
        dl = delimiter or modem.delimiter
        modem.dataReceived(data + dl)

    def wait_for_next_commands(self, clear=True, modem=None, transport=None):

        modem = modem or self.modem
        transport = transport or self.modem_transport

        d = Deferred()

        def check_for_input():
            if not transport.value():
                reactor.callLater(0, check_for_input)
                return

            commands = transport.value().split(modem.delimiter)

            if clear:
                transport.clear()

            d.callback(filter(None, commands))

        check_for_input()
        return d

    @inlineCallbacks
    def assertCommands(self, commands, clear=True, modem=None, transport=None):
        received_commands = yield self.wait_for_next_commands(
            clear=clear, modem=modem, transport=transport)
        self.assertEqual(commands, received_commands)

    @inlineCallbacks
    def assertExchange(self,
                       input,
                       output,
                       clear=True,
                       modem=None,
                       transport=None):
        yield self.assertCommands(input,
                                  clear=clear,
                                  modem=modem,
                                  transport=transport)
        for reply in output:
            self.reply(reply, modem=modem)
Example #2
0
File: base.py Project: smn/txgsm
class TxGSMBaseTestCase(TestCase):

    def setUp(self):
        self.modem = TxGSMProtocol()
        self.modem.verbose = True
        self.modem_transport = proto_helpers.StringTransport()
        self.modem.makeConnection(self.modem_transport)

    def reply(self, data, delimiter=None, modem=None):
        modem = modem or self.modem
        dl = delimiter or modem.delimiter
        modem.dataReceived(data + dl)

    def wait_for_next_commands(self, clear=True, modem=None, transport=None):

        modem = modem or self.modem
        transport = transport or self.modem_transport

        d = Deferred()

        def check_for_input():
            if not transport.value():
                reactor.callLater(0, check_for_input)
                return

            commands = transport.value().split(modem.delimiter)

            if clear:
                transport.clear()

            d.callback(filter(None, commands))

        check_for_input()
        return d

    @inlineCallbacks
    def assertCommands(self, commands, clear=True, modem=None, transport=None):
        received_commands = yield self.wait_for_next_commands(
            clear=clear, modem=modem, transport=transport)
        self.assertEqual(commands, received_commands)

    @inlineCallbacks
    def assertExchange(self, input, output, clear=True, modem=None,
                       transport=None):
        yield self.assertCommands(input, clear=clear, modem=modem,
                                  transport=transport)
        for reply in output:
            self.reply(reply, modem=modem)
Example #3
0
File: base.py Project: smn/txgsm
 def setUp(self):
     self.modem = TxGSMProtocol()
     self.modem.verbose = True
     self.modem_transport = proto_helpers.StringTransport()
     self.modem.makeConnection(self.modem_transport)
Example #4
0
 def setUp(self):
     self.modem = TxGSMProtocol()
     self.modem.verbose = True
     self.modem_transport = proto_helpers.StringTransport()
     self.modem.makeConnection(self.modem_transport)