# Copyright (c) 2020 Dell Inc. or its subsidiaries. # # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from unittest import mock from oslotest.base import BaseTestCase import sushy from sushy_oem_idrac.asynchronous import http_call class AsychronousTestCase(BaseTestCase): def setUp(self): super(AsychronousTestCase, self).setUp() self.conn = mock.Mock() def test_http_call_post_accepted(self): mock_post_response = self.conn.post.return_value mock_post_response.status_code = 202 mock_post_response.headers.get.return_value = '1' mock_get_202_response = mock.Mock() mock_get_202_response.status_code = 202 mock_get_202_response.headers.get.return_value = '1' mock_get_200_response = mock.Mock() mock_get_200_response.status_code = 200 self.conn.get.side_effect = [ mock_get_202_response, mock_get_200_response] resp = http_call(self.conn, 'POST') self.assertIs(resp, mock_get_200_response) def test_http_call_post_accepted_no_location(self): mock_response = self.conn.post.return_value mock_response.status_code = 202 mock_response.headers.get.return_value = None self.assertRaises(sushy.exceptions.ExtensionError, http_call, self.conn, 'POST')