1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# 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.
import warnings
import testtools
from openstack import exceptions
from openstack import proxy
from openstack.tests.unit import base
class TestMissingVersion(base.TestCase):
def setUp(self):
super().setUp()
self.os_fixture.clear_tokens()
svc = self.os_fixture.v3_token.add_service('image')
svc.add_endpoint(
url='https://example.com/image/',
region='RegionOne',
interface='public',
)
self.use_keystone_v3()
self.use_glance(
image_version_json='bad-glance-version.json',
image_discovery_url='https://example.com/image/',
)
def test_unsupported_version(self):
with testtools.ExpectedException(exceptions.NotSupported):
self.cloud.image.get('/')
self.assert_calls()
def test_unsupported_version_override(self):
self.cloud.config.config['image_api_version'] = '7'
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
warnings.simplefilter("ignore", DeprecationWarning)
self.assertIsInstance(self.cloud.image, proxy.Proxy)
self.assertEqual(1, len(w))
self.assertIn(
"Service image has no discoverable version.",
str(w[-1].message),
)
self.assert_calls()
|