You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2015/03/06 13:35:13 UTC
[06/26] allura git commit: [#7832] ticket:731 Delete webhook endpoint
[#7832] ticket:731 Delete webhook endpoint
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f392d5b2
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f392d5b2
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f392d5b2
Branch: refs/heads/ib/7830
Commit: f392d5b2880d1ff777cd402f8db24f62e0eaa962
Parents: 2fac9ec
Author: Igor Bondarenko <je...@gmail.com>
Authored: Mon Feb 23 09:58:09 2015 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Fri Feb 27 22:40:52 2015 +0000
----------------------------------------------------------------------
Allura/allura/tests/test_webhooks.py | 16 ++++++++++++++++
Allura/allura/webhooks.py | 11 +++++++++++
2 files changed, 27 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/f392d5b2/Allura/allura/tests/test_webhooks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_webhooks.py b/Allura/allura/tests/test_webhooks.py
index ee9cd0b..50a9803 100644
--- a/Allura/allura/tests/test_webhooks.py
+++ b/Allura/allura/tests/test_webhooks.py
@@ -878,3 +878,19 @@ class TestWebhookRestController(TestRestApiBase):
webhook = M.Webhook.query.get(_id=webhook._id)
assert_equal(webhook.hook_url, 'http://httpbin.org/post/0')
assert_equal(webhook.secret, 'secret-0')
+
+ def test_delete_validation(self):
+ url = '{}/repo-push/invalid'.format(self.url)
+ self.api_delete(url, status=404)
+
+ def test_delete(self):
+ assert_equal(M.Webhook.query.find().count(), 3)
+ webhook = self.webhooks[0]
+ url = '{}/repo-push/{}'.format(self.url, webhook._id)
+ msg = 'delete webhook repo-push {} {}'.format(
+ webhook.hook_url, self.git.config.url())
+ with td.audits(msg):
+ r = self.api_delete(url, status=200)
+ dd.assert_equal(r.json, {u'result': u'ok'})
+ assert_equal(M.Webhook.query.find().count(), 2)
+ assert_equal(M.Webhook.query.get(_id=webhook._id), None)
http://git-wip-us.apache.org/repos/asf/allura/blob/f392d5b2/Allura/allura/webhooks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/webhooks.py b/Allura/allura/webhooks.py
index f30994f..19903d5 100644
--- a/Allura/allura/webhooks.py
+++ b/Allura/allura/webhooks.py
@@ -272,6 +272,8 @@ class WebhookRestController(BaseController):
raise exc.HTTPNotFound()
if request.method == 'POST':
return self._edit(wh, form, **kw)
+ elif request.method == 'DELETE':
+ return self._delete(wh)
else:
return {'result': 'ok', 'webhook': wh}
@@ -301,6 +303,15 @@ class WebhookRestController(BaseController):
return {'result': 'ok',
'webhook': webhook}
+ def _delete(self, webhook):
+ webhook.delete()
+ M.AuditLog.log(
+ 'delete webhook %s %s %s',
+ webhook.type,
+ webhook.hook_url,
+ webhook.app_config.url())
+ return {'result': 'ok'}
+
class SendWebhookHelper(object):
def __init__(self, webhook, payload):