def test_parse_ok(self): self.req.post.return_value = self.get_response('', 204) form = WebhookParseForm({'bt_payload': 'p', 'bt_signature': 's'}) assert form.is_valid() self.req.post.assert_called_with( 'http://m.o/parse', {'bt_signature': 's', 'bt_payload': 'p'} )
def test_parse_ok(self): self.req.post.return_value = self.get_response('', 204) form = WebhookParseForm({'bt_payload': 'p', 'bt_signature': 's'}) assert form.is_valid() self.req.post.assert_called_with('http://m.o/parse', { 'bt_signature': 's', 'bt_payload': 'p' })
def parse(request): form = WebhookParseForm(request.DATA) if not form.is_valid(): raise FormError(form.errors) # Parse the gateway without doing a validation on this server. # The validation has happened on the solitude-auth server. gateway = get_client().Configuration.instantiate().gateway() payload = base64.decodestring(form.cleaned_data['bt_payload']) attributes = XmlUtil.dict_from_xml(payload) parsed = WebhookNotification(gateway, attributes['notification']) log.info('Received webhook: {p.kind}.'.format(p=parsed)) debug_log.debug(parsed) Processor(parsed).process() return Response(status=204)
def parse(request): form = WebhookParseForm(request.DATA) if not form.is_valid(): raise FormError(form.errors) # Parse the gateway without doing a validation on this server. # The validation has happened on the solitude-auth server. gateway = get_client().Configuration.instantiate().gateway() payload = base64.decodestring(form.cleaned_data['bt_payload']) attributes = XmlUtil.dict_from_xml(payload) parsed = WebhookNotification(gateway, attributes['notification']) log.info('Received webhook: {p.kind}.'.format(p=parsed)) debug_log.debug(parsed) processor = Processor(parsed) processor.process() data = processor.data return Response(data, status=200 if data else 204)
def test_parse_not_204(self): self.req.post.return_value = self.get_response('something', 200) form = WebhookParseForm({'bt_payload': 'p', 'bt_signature': 's'}) assert not form.is_valid()
def test_parse_fails(self): self.req.post.return_value = self.get_response('nope', 403) form = WebhookParseForm({'bt_payload': 'p', 'bt_signature': 's'}) assert not form.is_valid()