From 9979a0baccedcc46a88e5d9156cc463aa9ade3de Mon Sep 17 00:00:00 2001 From: Yusuke Miyazaki Date: Thu, 11 Mar 2021 18:44:17 +0900 Subject: [PATCH] Add enable extension API --- pygerduty/v2.py | 5 ++++- tests/extensions_test.py | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pygerduty/v2.py b/pygerduty/v2.py index 675d165..06cee6e 100644 --- a/pygerduty/v2.py +++ b/pygerduty/v2.py @@ -316,7 +316,10 @@ class EmailFilters(Collection): class Extensions(Collection): - pass + def enable(self, entity_id): + path = "{0}/{1}/enable".format(self.name, entity_id) + response = self.pagerduty.request("POST", path) + return self.container(self, **response.get(self.sname, {})) class Addons(Collection): diff --git a/tests/extensions_test.py b/tests/extensions_test.py index c3625b1..2d71f2c 100644 --- a/tests/extensions_test.py +++ b/tests/extensions_test.py @@ -58,3 +58,19 @@ def test_list_extensions_v2(): assert len(extensions[1].extension_objects) == 1 ext_obj1 = extensions[1].extension_objects[0] assert ext_obj1.id == 'PIJ90N8' + + +@httpretty.activate +def test_enable_extension_v2(): + body = open('tests/fixtures/get_extension_v2.json').read() + httpretty.register_uri( + httpretty.POST, "https://api.pagerduty.com/extensions/PPGPXHO/enable", + body=body, status=200) + p = pygerduty.v2.PagerDuty("password") + extension = p.extensions.enable("PPGPXHO") + + assert extension.self_ == 'https://api.pagerduty.com/extensions/PPGPXHO' + assert extension.endpoint_url == 'https://example.com/recieve_a_pagerduty_webhook' + assert len(extension.extension_objects) == 1 + ext_obj = extension.extension_objects[0] + assert ext_obj.id == 'PIJ90N7'