Skip to content

Commit 6fd2ff9

Browse files
Merge pull request #11 from ByteInternet/add_destroy_brancher_endpoint
Add Destroy Brancher helper function
2 parents 2b343a0 + c7a6be5 commit 6fd2ff9

2 files changed

Lines changed: 47 additions & 0 deletions

File tree

hypernode_api_python/client.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
HYPERNODE_API_APP_EAV_DESCRIPTION_ENDPOINT = "/v2/app/eav_descriptions/"
1111
HYPERNODE_API_APP_FLAVOR_ENDPOINT = "/v2/app/{}/flavor/"
1212
HYPERNODE_API_APP_BRANCHER_ENDPOINT = "/v2/app/{}/brancher/"
13+
HYPERNODE_API_BRANCHER_ENDPOINT = "/v2/brancher/{}/"
1314
HYPERNODE_API_APP_NEXT_BEST_PLAN_ENDPOINT = "/v2/app/{}/next_best_plan/"
1415
HYPERNODE_API_APP_PRODUCT_LIST_ENDPOINT = "/v2/product/app/{}/"
1516
HYPERNODE_API_APP_XGRADE_CHECK_ENDPOINT = "/v2/app/xgrade/{}/check/{}/"
@@ -675,3 +676,14 @@ def create_brancher(self, app_name, data):
675676
return self.requests(
676677
"POST", HYPERNODE_API_APP_BRANCHER_ENDPOINT.format(app_name), data=data
677678
)
679+
680+
def destroy_brancher(self, brancher_name):
681+
"""
682+
Destroy an existing brancher node of your Hypernode.
683+
684+
:param str brancher_name: The name of the brancher node to destroy.
685+
:return obj response: The request response object
686+
"""
687+
return self.requests(
688+
"DELETE", HYPERNODE_API_BRANCHER_ENDPOINT.format(brancher_name)
689+
)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from unittest import TestCase
2+
from unittest.mock import Mock
3+
4+
from hypernode_api_python.client import (
5+
HypernodeAPIPython,
6+
HYPERNODE_API_BRANCHER_ENDPOINT,
7+
)
8+
9+
10+
class TestDestroyBrancher(TestCase):
11+
def setUp(self):
12+
self.client = HypernodeAPIPython(token="my_token")
13+
self.mock_request = Mock()
14+
self.client.requests = self.mock_request
15+
self.brancher_name = "app-branchermobyname"
16+
17+
def test_brancher_endpoint_is_correct(self):
18+
self.assertEqual("/v2/brancher/{}/", HYPERNODE_API_BRANCHER_ENDPOINT)
19+
20+
def test_calls_destroy_brancher_endpoint_properly(self):
21+
self.client.destroy_brancher(self.brancher_name)
22+
23+
self.mock_request.assert_called_once_with(
24+
"DELETE", HYPERNODE_API_BRANCHER_ENDPOINT.format(self.brancher_name)
25+
)
26+
27+
def test_returns_destroy_brancher_data(self):
28+
response = Mock()
29+
response.status_code = 204
30+
self.mock_request.return_value = response
31+
32+
self.assertEqual(
33+
self.client.destroy_brancher(self.brancher_name),
34+
self.mock_request.return_value,
35+
)

0 commit comments

Comments
 (0)