Skip to content

Commit

Permalink
Merge pull request #117 from beer-garden/beergarden/231
Browse files Browse the repository at this point in the history
Adding new get_instance method to EasyClient
  • Loading branch information
loganasherjones committed Feb 22, 2019
2 parents fabcbdc + db0e999 commit 61eb6e6
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 9 deletions.
28 changes: 26 additions & 2 deletions brewtils/rest/easy_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,8 +354,25 @@ def initialize_instance(self, instance_id):
@wrap_response(
parse_method="parse_instance", parse_many=False, default_exc=FetchError
)
def get_instance(self, instance_id):
"""Get an Instance
Args:
instance_id: The Id
Returns:
The Instance
"""
return self.client.get_instance(instance_id)

def get_instance_status(self, instance_id):
"""Get an instance's status
"""Get an Instance
WARNING: This method currently returns the Instance, not the Instance's status.
This behavior will be corrected in 3.0.
To prepare for this change please use get_instance() instead of this method.
Args:
instance_id: The Id
Expand All @@ -364,7 +381,14 @@ def get_instance_status(self, instance_id):
The status
"""
return self.client.get_instance(instance_id)
warnings.warn(
"This method currently returns the Instance, not the Instance's status. "
"This behavior will be corrected in 3.0. To prepare please use "
"get_instance() instead of this method.",
FutureWarning,
)

return self.get_instance(instance_id)

@wrap_response(
parse_method="parse_instance", parse_many=False, default_exc=SaveError
Expand Down
70 changes: 63 additions & 7 deletions test/rest/easy_client_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,33 +383,89 @@ def test_initialize_instance_connection_error(self, request_mock):
self.assertRaises(RestConnectionError, self.client.initialize_instance, "id")

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status(self, request_mock):
def test_get_instance(self, request_mock):
request_mock.return_value = self.fake_success_response

self.client.get_instance_status("id")
self.client.get_instance("id")
self.assertTrue(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status_client_error(self, request_mock):
def test_get_instance_client_error(self, request_mock):
request_mock.return_value = self.fake_client_error_response

self.assertRaises(ValidationError, self.client.get_instance_status, "id")
self.assertRaises(ValidationError, self.client.get_instance, "id")
self.assertFalse(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status_server_error(self, request_mock):
def test_get_instance_server_error(self, request_mock):
request_mock.return_value = self.fake_server_error_response

self.assertRaises(FetchError, self.client.get_instance_status, "id")
self.assertRaises(FetchError, self.client.get_instance, "id")
self.assertFalse(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_connection_error(self, request_mock):
request_mock.return_value = self.fake_connection_error_response
self.assertRaises(RestConnectionError, self.client.get_instance_status, "id")
self.assertRaises(RestConnectionError, self.client.get_instance, "id")

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status(self, request_mock):
request_mock.return_value = self.fake_success_response

with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")

self.client.get_instance_status("id")
self.assertTrue(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

self.assertEqual(1, len(w))
self.assertEqual(w[0].category, FutureWarning)

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status_client_error(self, request_mock):
request_mock.return_value = self.fake_client_error_response

with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")

self.assertRaises(ValidationError, self.client.get_instance_status, "id")
self.assertFalse(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

self.assertEqual(1, len(w))
self.assertEqual(w[0].category, FutureWarning)

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status_server_error(self, request_mock):
request_mock.return_value = self.fake_server_error_response

with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")

self.assertRaises(FetchError, self.client.get_instance_status, "id")
self.assertFalse(self.parser.parse_instance.called)
request_mock.assert_called_once_with("id")

self.assertEqual(1, len(w))
self.assertEqual(w[0].category, FutureWarning)

@patch("brewtils.rest.client.RestClient.get_instance")
def test_get_instance_status_connection_error(self, request_mock):
request_mock.return_value = self.fake_connection_error_response

with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")

self.assertRaises(
RestConnectionError, self.client.get_instance_status, "id"
)

self.assertEqual(1, len(w))
self.assertEqual(w[0].category, FutureWarning)

@patch("brewtils.rest.client.RestClient.patch_instance")
def test_update_instance_status(self, request_mock):
Expand Down

0 comments on commit 61eb6e6

Please sign in to comment.