コード例 #1
0
ファイル: test_models.py プロジェクト: djangosms/core
    def test_is_reply(self):
        from djangosms.core.models import Connection
        conn1 = Connection(uri="test://1")
        conn1.save()
        conn2 = Connection(uri="test://2")
        conn2.save()

        from djangosms.core.models import Incoming
        from djangosms.core.models import Outgoing
        from djangosms.core.models import Request

        message = Incoming(connection=conn1)
        message.save()

        request = Request(message=message)
        request.save()

        response = Outgoing(connection=conn1, in_response_to=request)
        response.save()
        self.assertTrue(response.is_reply())

        alert = Outgoing(connection=conn2, in_response_to=request)
        alert.save()
        self.assertFalse(alert.is_reply())

        unsolicited = Outgoing(in_response_to=None)
        unsolicited.save()
        self.assertFalse(unsolicited.is_reply())
コード例 #2
0
ファイル: test_management.py プロジェクト: djangosms/core
    def test_dumpmsgs(self):
        from djangosms.core.models import Incoming
        Incoming.from_uri("test://test", text="Test")

        from djangosms.core.management.commands.dumpmsgs import Command

        out = StringIO.StringIO()
        with stdout_redirected(out):
            Command().handle()

        from yaml import load
        messages = load(out.getvalue())

        self.assertTrue(len(messages), 1)
        self.assertTrue("Test" in repr(messages))
コード例 #3
0
ファイル: test_router.py プロジェクト: djangosms/core
    def test_formatting_error_means_dont_handle(self):
        handled = []
        def check(sender=None, **kwargs):
            handled.append(sender) # pragma: NOCOVER
        from djangosms.core.router import pre_handle
        pre_handle.connect(check)

        from djangosms.core.router import FormatError
        from djangosms.core.router import Form

        class Handler(Form):
            def parse(request):
                raise FormatError("error")

            def handle(self):
                raise RuntimeError()

        from djangosms.core.models import Incoming
        message = Incoming.from_uri("test://test", text="")
        message.save()

        from djangosms.core.router import route
        route(message, table=(
            (r'^$', Handler),
            ))

        self.assertTrue(len(handled), 1)
        self.assertEqual(message.requests.count(), 1)
        self.assertEqual(message.requests.get().erroneous, True)
コード例 #4
0
ファイル: test_router.py プロジェクト: djangosms/core
    def test_signals(self):
        from djangosms.core.router import pre_handle
        from djangosms.core.router import post_handle

        s3 = []
        s4 = []

        def before_handle(sender=None, handler=None, **kwargs):
            s3.append(sender)
            self.assertTrue(handler is handlers.pop(0), handler)
            self.assertEqual(sender.responses.count(), 0)
        pre_handle.connect(before_handle)

        def after_handle(sender=None, error=None, **kwargs):
            s4.append(sender)
            self.assertTrue(error is None, error)
            self.assertEqual(sender.responses.count(), 1)
        post_handle.connect(after_handle)

        from djangosms.core.models import Incoming

        args = []
        def handler1(request, **kwargs):
            args.append((request, kwargs))
            return "1"
        def handler2(request, **kwargs):
            args.append((request, kwargs))
            return "2"

        handlers = [handler1, handler2]

        message = Incoming.from_uri("test://test", text="12")
        message.save()

        from djangosms.core.router import route
        route(message, table=(
            (r'^(?P<input>1)', handler1),
            (r'^(?P<input>2)', handler2),
            ))

        self.assertTrue(len(s3), 1)
        self.assertTrue(len(s4), 1)
        self.assertEqual(len(args), 2)
        self.assertEqual(message.requests.count(), 2)