Example #1
0
class TestMiddleware(BaseTest):
    def setUp(self):
        super(TestMiddleware, self).setUp()
        self.mw = HawkResponseMiddleware()

    def request(self, method='GET', content_type='text/plain', url=None):
        if not url:
            url = self.url
        sender = self._sender(method=method, content_type=content_type)
        req = self._request(sender, method=method, content_type=content_type)
        self.authorize_request(sender, req, url=url, method=method)

        return req, sender

    def authorize_request(self, sender, req, url=None, method='GET'):
        if not url:
            url = self.url
        # Simulate how a view authorizes a request.
        receiver = Receiver(default_credentials_lookup,
                            sender.request_header,
                            url,
                            method,
                            content=req.body,
                            content_type=req.META['CONTENT_TYPE'])
        req.META['hawk.receiver'] = receiver

    def accept_response(self, response, sender):
        sender.accept_response(response['Server-Authorization'],
                               content=response.content,
                               content_type=response['Content-Type'])

    def test_respond_ok(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)
        self.accept_response(res, sender)

    def test_respond_with_bad_content(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)

        response.content = 'TAMPERED WITH'

        with self.assertRaises(MisComputedContentHash):
            self.accept_response(res, sender)

    def test_respond_with_bad_content_type(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)

        response['Content-Type'] = 'TAMPERED WITH'

        with self.assertRaises(MisComputedContentHash):
            self.accept_response(res, sender)
Example #2
0
class TestMiddleware(BaseTest):

    def setUp(self):
        super(TestMiddleware, self).setUp()
        self.mw = HawkResponseMiddleware()

    def request(self, method='GET', content_type='text/plain', url=None):
        if not url:
            url = self.url
        sender = self._sender(method=method, content_type=content_type)
        req = self._request(sender, method=method, content_type=content_type)
        self.authorize_request(sender, req, url=url, method=method)

        return req, sender

    def authorize_request(self, sender, req, url=None, method='GET'):
        if not url:
            url = self.url
        # Simulate how a view authorizes a request.
        receiver = Receiver(default_credentials_lookup,
                            sender.request_header,
                            url, method,
                            content=req.body,
                            content_type=req.META['CONTENT_TYPE'])
        req.META['hawk.receiver'] = receiver

    def accept_response(self, response, sender):
        sender.accept_response(response['Server-Authorization'],
                               content=response.content,
                               content_type=response['Content-Type'])

    def test_respond_ok(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)
        self.accept_response(res, sender)

    def test_respond_with_bad_content(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)

        response.content = 'TAMPERED WITH'

        with self.assertRaises(MisComputedContentHash):
            self.accept_response(res, sender)

    def test_respond_with_bad_content_type(self):
        req, sender = self.request()

        response = HttpResponse('the response')
        res = self.mw.process_response(req, response)

        response['Content-Type'] = 'TAMPERED WITH'

        with self.assertRaises(MisComputedContentHash):
            self.accept_response(res, sender)
Example #3
0
 def setUp(self):
     super(TestMiddleware, self).setUp()
     self.mw = HawkResponseMiddleware()
Example #4
0
 def setUp(self):
     super(TestMiddleware, self).setUp()
     self.mw = HawkResponseMiddleware()