本文整理汇总了Python中botocore.loaders.Loader.load_service_model方法的典型用法代码示例。如果您正苦于以下问题:Python Loader.load_service_model方法的具体用法?Python Loader.load_service_model怎么用?Python Loader.load_service_model使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类botocore.loaders.Loader
的用法示例。
在下文中一共展示了Loader.load_service_model方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ServiceWaiterFunctionalTest
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
class ServiceWaiterFunctionalTest(BaseEnvVar):
"""
This class is used as a base class if you want to functionally test the
waiters for a specific service.
"""
def setUp(self):
super(ServiceWaiterFunctionalTest, self).setUp()
self.data_path = os.path.join(
os.path.dirname(botocore.__file__), 'data')
self.environ['BOTO_DATA_PATH'] = self.data_path
self.loader = Loader(self.data_path)
def get_waiter_model(self, service, api_version=None):
"""Get the waiter model for the service."""
return WaiterModel(
self.loader.load_service_model(
service, type_name='waiters-2', api_version=api_version))
def get_service_model(self, service, api_version=None):
"""Get the service model for the service."""
return ServiceModel(
self.loader.load_service_model(
service, type_name='service-2', api_version=api_version),
service_name=service)
示例2: test_load_service_model_enforces_case
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def test_load_service_model_enforces_case(self):
class FakeLoader(object):
def load_file(self, name):
return ['loaded data']
loader = Loader(extra_search_paths=['foo'],
file_loader=FakeLoader(),
include_default_search_paths=False)
loader.determine_latest_version = mock.Mock(return_value='2015-03-01')
loader.list_available_services = mock.Mock(return_value=['baz'])
with self.assertRaises(ValidationError):
loader.load_service_model('BAZ', type_name='service-2')
示例3: test_load_service_model_uses_provided_type_name
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def test_load_service_model_uses_provided_type_name(self):
loader = Loader(extra_search_paths=['foo'],
file_loader=mock.Mock(),
include_default_search_paths=False)
loader.list_available_services = mock.Mock(return_value=['baz'])
# Should have a) the unknown service name and b) list of valid
# service names.
provided_type_name = 'not-service-2'
with self.assertRaisesRegexp(UnknownServiceError,
'Unknown service.*BAZ.*baz'):
loader.load_service_model(
'BAZ', type_name=provided_type_name)
loader.list_available_services.assert_called_with(provided_type_name)
示例4: test_load_service_model_enforces_case
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def test_load_service_model_enforces_case(self):
class FakeLoader(object):
def load_file(self, name):
return ['loaded data']
loader = Loader(extra_search_paths=['foo'],
file_loader=FakeLoader(),
include_default_search_paths=False)
loader.determine_latest_version = mock.Mock(return_value='2015-03-01')
loader.list_available_services = mock.Mock(return_value=['baz'])
# Should have a) the unknown service name and b) list of valid
# service names.
with self.assertRaisesRegexp(UnknownServiceError,
'Unknown service.*BAZ.*baz'):
loader.load_service_model('BAZ', type_name='service-2')
示例5: _test_model_is_not_lost
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def _test_model_is_not_lost(service_name, type_name,
previous_version, latest_version):
# Make sure if a paginator and/or waiter exists in previous version,
# there will be a successor existing in latest version.
loader = Loader()
try:
previous = loader.load_service_model(
service_name, type_name, previous_version)
except DataNotFoundError:
pass
else:
try:
latest = loader.load_service_model(
service_name, type_name, latest_version)
except DataNotFoundError as e:
raise AssertionError(
"%s must exist for %s: %s" % (type_name, service_name, e))
示例6: test_load_service_model
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def test_load_service_model(self):
class FakeLoader(object):
def load_file(self, name):
return ['loaded data']
loader = Loader(extra_search_paths=['foo'],
file_loader=FakeLoader(),
include_default_search_paths=False)
loader.determine_latest_version = mock.Mock(return_value='2015-03-01')
loaded = loader.load_service_model('baz', type_name='service-2')
self.assertEqual(loaded, ['loaded data'])
示例7: test_load_data_overridden
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
def test_load_data_overridden(self):
self.overrides_path = os.path.join(
os.path.dirname(__file__),
'data_overrides'
)
self.environ['BOTO_DATA_PATH'] = "{0}{1}{2}".format(
self.overrides_path,
os.pathsep,
self.data_path
)
loader = Loader(data_path=self.environ['BOTO_DATA_PATH'])
# This should load the data the first data it finds.
data = loader.load_service_model(
'someservice',
api_version='2012-10-01'
)
# An overridden key.
self.assertEqual(data['api_version'], '2012-10-01')
# A key unique to the base.
self.assertEqual(data['something-else'], 'another')
# Ensure a key present in other variants is not there.
self.assertTrue('Purpose' not in data)
示例8: LoaderTestCase
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
class LoaderTestCase(BaseEnvVar):
def setUp(self):
super(LoaderTestCase, self).setUp()
self.data_path = os.path.join(os.path.dirname(__file__), 'data')
self.environ['BOTO_DATA_PATH'] = self.data_path
self.loader = Loader(data_path=self.environ['BOTO_DATA_PATH'])
# Make sure the cache is clear.
self.loader._cache.clear()
def test_data_path_not_required(self):
loader = Loader()
self.assertEqual(loader.data_path, '')
loader.data_path = 'foo:bar'
self.assertEqual(loader.data_path, 'foo:bar')
def test_get_search_paths(self):
paths = self.loader.get_search_paths()
self.assertTrue(self.data_path in paths)
def test_determine_latest_no_version(self):
path = self.loader.determine_latest('someservice')
self.assertEqual(path, os.path.join('someservice',
'2013-08-21.normal'))
def test_determine_latest_with_version(self):
path = self.loader.determine_latest(
'someservice',
api_version='2012-10-01'
)
self.assertEqual(path, os.path.join('someservice',
'2012-10-01.normal'))
def test_determine_latest_with_version_the_wrong_way(self):
with self.assertRaises(ApiVersionNotFoundError):
self.loader.determine_latest('someservice/2012-10-01')
def test_determine_latest_with_version_not_found(self):
with self.assertRaises(ApiVersionNotFoundError):
path = self.loader.determine_latest(
'someservice',
api_version='2010-02-02'
)
def test_load_data_plain_file(self):
data = self.loader.load_data('foo')
self.assertEqual(data['test_key_1'], 'test_value_1')
def test_load_data_plain_file_nonexistant(self):
with self.assertRaises(DataNotFoundError):
data = self.loader.load_data('i_totally_dont_exist')
def test_load_service_model_latest_without_version(self):
data = self.loader.load_service_model('someservice')
self.assertEqual(data['api_version'], '2013-08-21')
def test_load_service_model_with_version(self):
data = self.loader.load_service_model(
'someservice',
api_version='2012-10-01'
)
self.assertEqual(data['api_version'], '2012-10-01')
def test_load_service_model_version_not_found(self):
with self.assertRaises(ApiVersionNotFoundError):
data = self.loader.load_service_model(
'someservice',
api_version='2010-02-02'
)
def test_load_service_model_data_path_order(self):
# There's an s3/ directory both in our custom BOTO_DATA_PATH
# directory as well as in the botocore/data/ directory.
# Our path should win since the default built in path is always
# last.
data = self.loader.load_service_model('aws/s3')
self.assertTrue(data.get('WAS_OVERRIDEN_VIA_DATA_PATH'),
"S3 model was loaded from botocore's default "
"data path instead of from the BOTO_DATA_PATH"
" directory.")
def test_list_available_services(self):
avail = self.loader.list_available_services('')
self.assertEqual(sorted(avail), [
'aws',
'aws',
'someservice',
'sub',
])
aws_avail = self.loader.list_available_services('aws')
self.assertTrue(len(aws_avail) > 10)
self.assertTrue('ec2' in aws_avail)
def test_load_data_overridden(self):
self.overrides_path = os.path.join(
os.path.dirname(__file__),
'data_overrides'
)
self.environ['BOTO_DATA_PATH'] = "{0}{1}{2}".format(
#.........这里部分代码省略.........
示例9: TestMergeExtras
# 需要导入模块: from botocore.loaders import Loader [as 别名]
# 或者: from botocore.loaders.Loader import load_service_model [as 别名]
class TestMergeExtras(BaseEnvVar):
def setUp(self):
super(TestMergeExtras, self).setUp()
self.file_loader = mock.Mock()
self.data_loader = Loader(
extra_search_paths=['datapath'], file_loader=self.file_loader,
include_default_search_paths=False)
self.data_loader.determine_latest_version = mock.Mock(
return_value='2015-03-01')
self.data_loader.list_available_services = mock.Mock(
return_value=['myservice'])
isdir_mock = mock.Mock(return_value=True)
self.isdir_patch = mock.patch('os.path.isdir', isdir_mock)
self.isdir_patch.start()
def tearDown(self):
super(TestMergeExtras, self).tearDown()
self.isdir_patch.stop()
def test_merge_extras(self):
service_data = {'foo': 'service', 'bar': 'service'}
sdk_extras = {'merge': {'foo': 'sdk'}}
self.file_loader.load_file.side_effect = [service_data, sdk_extras]
loaded = self.data_loader.load_service_model('myservice', 'service-2')
expected = {'foo': 'sdk', 'bar': 'service'}
self.assertEqual(loaded, expected)
call_args = self.file_loader.load_file.call_args_list
call_args = [c[0][0] for c in call_args]
base_path = os.path.join('datapath', 'myservice', '2015-03-01')
expected_call_args = [
os.path.join(base_path, 'service-2'),
os.path.join(base_path, 'service-2.sdk-extras')
]
self.assertEqual(call_args, expected_call_args)
def test_extras_not_found(self):
service_data = {'foo': 'service', 'bar': 'service'}
service_data_copy = copy.copy(service_data)
self.file_loader.load_file.side_effect = [service_data, None]
loaded = self.data_loader.load_service_model('myservice', 'service-2')
self.assertEqual(loaded, service_data_copy)
def test_no_merge_in_extras(self):
service_data = {'foo': 'service', 'bar': 'service'}
service_data_copy = copy.copy(service_data)
self.file_loader.load_file.side_effect = [service_data, {}]
loaded = self.data_loader.load_service_model('myservice', 'service-2')
self.assertEqual(loaded, service_data_copy)
def test_include_default_extras(self):
self.data_loader = Loader(
extra_search_paths=['datapath'], file_loader=self.file_loader,
include_default_search_paths=False,
include_default_extras=False)
self.data_loader.determine_latest_version = mock.Mock(
return_value='2015-03-01')
self.data_loader.list_available_services = mock.Mock(
return_value=['myservice'])
service_data = {'foo': 'service', 'bar': 'service'}
service_data_copy = copy.copy(service_data)
sdk_extras = {'merge': {'foo': 'sdk'}}
self.file_loader.load_file.side_effect = [service_data, sdk_extras]
loaded = self.data_loader.load_service_model('myservice', 'service-2')
self.assertEqual(loaded, service_data_copy)
def test_append_extra_type(self):
service_data = {'foo': 'service', 'bar': 'service'}
sdk_extras = {'merge': {'foo': 'sdk'}}
cli_extras = {'merge': {'cli': True}}
self.file_loader.load_file.side_effect = [
service_data, sdk_extras, cli_extras]
self.data_loader.extras_types.append('cli')
loaded = self.data_loader.load_service_model('myservice', 'service-2')
expected = {'foo': 'sdk', 'bar': 'service', 'cli': True}
self.assertEqual(loaded, expected)
call_args = self.file_loader.load_file.call_args_list
call_args = [c[0][0] for c in call_args]
base_path = os.path.join('datapath', 'myservice', '2015-03-01')
expected_call_args = [
os.path.join(base_path, 'service-2'),
os.path.join(base_path, 'service-2.sdk-extras'),
os.path.join(base_path, 'service-2.cli-extras')
]
self.assertEqual(call_args, expected_call_args)
def test_sdk_empty_extras_skipped(self):
service_data = {'foo': 'service', 'bar': 'service'}
cli_extras = {'merge': {'foo': 'cli'}}
self.file_loader.load_file.side_effect = [
service_data, None, cli_extras]
#.........这里部分代码省略.........