Пример #1
0
    def test_destination_region_always_changed(self):
        # If the user provides a destination region, we will still
        # override the DesinationRegion with the region_name from
        # the endpoint object.
        actual_region = 'us-west-1'
        operation_model = mock.Mock()
        operation_model.name = 'CopySnapshot'

        credentials = Credentials('key', 'secret')
        event_emitter = HierarchicalEmitter()
        request_signer = RequestSigner(ServiceId('ec2'), actual_region, 'ec2',
                                       'v4', credentials, event_emitter)
        request_dict = {}
        params = {
            'SourceRegion': 'us-west-2',
            'DestinationRegion': 'us-east-1'
        }
        request_dict['body'] = params
        request_dict['url'] = 'https://ec2.us-west-1.amazonaws.com'
        request_dict['method'] = 'POST'
        request_dict['headers'] = {}
        request_dict['context'] = {}

        # The user provides us-east-1, but we will override this to
        # endpoint.region_name, of 'us-west-1' in this case.
        handlers.inject_presigned_url_ec2(request_dict, request_signer,
                                          operation_model)

        self.assertIn('https://ec2.us-west-2.amazonaws.com?',
                      params['PresignedUrl'])

        # Always use the DestinationRegion from the endpoint, regardless of
        # whatever value the user provides.
        self.assertEqual(params['DestinationRegion'], actual_region)
Пример #2
0
 def setUp(self):
     super(TestDocumentModelDrivenResourceMethod, self).setUp()
     self.event_emitter = HierarchicalEmitter()
     self.service_model = self.client.meta.service_model
     self.operation_model = self.service_model.operation_model(
         'SampleOperation')
     self.service_resource_model = self.resource.meta.resource_model
Пример #3
0
    def setUp(self):
        super(TestDocumentAttribute, self).setUp()
        self.add_shape({
            'NestedStruct': {
                'type': 'structure',
                'members': {
                    'NestedStrAttr': {
                        'shape': 'String',
                        'documentation': 'Documents a nested string attribute'
                    }
                }
            }
        })
        self.add_shape({
            'ResourceShape': {
                'type': 'structure',
                'members': {
                    'StringAttr': {
                        'shape': 'String',
                        'documentation': 'Documents a string attribute'
                    },
                    'NestedAttr': {
                        'shape': 'NestedStruct',
                        'documentation': 'Documents a nested attribute'
                    }
                }
            }
        })
        self.setup_client_and_resource()

        self.event_emitter = HierarchicalEmitter()
        self.service_name = 'myservice'
        self.resource_name = 'myresource'
        self.service_model = self.client.meta.service_model
Пример #4
0
    def __init__(self,
                 session_vars=None,
                 event_hooks=None,
                 include_builtin_handlers=True,
                 profile=None):
        """
        Create a new Session object.

        :type session_vars: dict
        :param session_vars: A dictionary that is used to override some or all
            of the environment variables associated with this session.  The
            key/value pairs defined in this dictionary will override the
            corresponding variables defined in ``SESSION_VARIABLES``.

        :type event_hooks: BaseEventHooks
        :param event_hooks: The event hooks object to use. If one is not
            provided, an event hooks object will be automatically created
            for you.

        :type include_builtin_handlers: bool
        :param include_builtin_handlers: Indicates whether or not to
            automatically register builtin handlers.

        :type profile: str
        :param profile: The name of the profile to use for this
            session.  Note that the profile can only be set when
            the session is created.

        """
        if event_hooks is None:
            self._original_handler = HierarchicalEmitter()
        else:
            self._original_handler = event_hooks
        self._events = EventAliaser(self._original_handler)
        if include_builtin_handlers:
            self._register_builtin_handlers(self._events)
        self.user_agent_name = 'ibm-cos-sdk-python-core'
        self.user_agent_version = __version__
        self.user_agent_extra = ''
        # The _profile attribute is just used to cache the value
        # of the current profile to avoid going through the normal
        # config lookup process each access time.
        self._profile = None
        self._config = None
        self._credentials = None
        self._profile_map = None
        # This is a dict that stores per session specific config variable
        # overrides via set_config_variable().
        self._session_instance_vars = {}
        if profile is not None:
            self._session_instance_vars['profile'] = profile
        self._client_config = None
        self._last_client_region_used = None
        self._components = ComponentLocator()
        self._internal_components = ComponentLocator()
        self._register_components()
        self.session_var_map = SessionVarDict(self, self.SESSION_VARIABLES)
        if session_vars is not None:
            self.session_var_map.update(session_vars)
Пример #5
0
 def setUp(self):
     super().setUp()
     self.event_emitter = HierarchicalEmitter()
     self.service_model = self.client.meta.service_model
     self.operation_model = self.service_model.operation_model(
         'SampleOperation'
     )
     self.service_resource_model = self.resource.meta.resource_model
    def test_emitter_can_be_passed_in(self):
        events = HierarchicalEmitter()
        session = create_session(event_hooks=events)
        calls = []
        handler = lambda **kwargs: calls.append(kwargs)
        events.register('foo', handler)

        session.emit('foo')
        self.assertEqual(len(calls), 1)
Пример #7
0
 def setUp(self):
     super(BaseExampleDocumenterTest, self).setUp()
     self.event_emitter = HierarchicalEmitter()
     self.request_example = RequestExampleDocumenter(
         service_name='myservice',
         operation_name='SampleOperation',
         event_emitter=self.event_emitter)
     self.response_example = ResponseExampleDocumenter(
         service_name='myservice',
         operation_name='SampleOperation',
         event_emitter=self.event_emitter)
Пример #8
0
    def setUp(self):
        self.original_name = 'original'
        self.alias_name = 'alias'
        self.parameter_alias = handlers.ParameterAlias(
            self.original_name, self.alias_name)

        self.operation_model = mock.Mock()
        request_shape = DenormalizedStructureBuilder().with_members(
            {self.original_name: {'type': 'string'}}).build_model()
        self.operation_model.input_shape = request_shape
        self.sample_section = DocumentStructure('')
        self.event_emitter = HierarchicalEmitter()
Пример #9
0
    def setUp(self):
        super(TestCollectionFactory, self).setUp()

        self.client = mock.Mock()
        self.client.can_paginate.return_value = False
        self.parent = mock.Mock()
        self.parent.meta = ResourceMeta('test', client=self.client)
        self.resource_factory = ResourceFactory(mock.Mock())
        self.service_model = ServiceModel({})
        self.event_emitter = HierarchicalEmitter()

        self.factory = CollectionFactory()
        self.load = self.factory.load_from_definition
Пример #10
0
    def test_dest_region_removed(self):
        operation_model = mock.Mock()
        operation_model.name = 'CopyDBSnapshot'
        credentials = Credentials('key', 'secret')
        event_emitter = HierarchicalEmitter()
        request_signer = RequestSigner(ServiceId('rds'), 'us-east-1', 'rds',
                                       'v4', credentials, event_emitter)
        request_dict = {}
        params = {'SourceRegion': 'us-west-2'}
        request_dict['body'] = params
        request_dict['url'] = 'https://rds.us-east-1.amazonaws.com'
        request_dict['method'] = 'POST'
        request_dict['headers'] = {}
        request_dict['context'] = {}

        handlers.inject_presigned_url_rds(params=request_dict,
                                          request_signer=request_signer,
                                          model=operation_model)

        self.assertNotIn('DestinationRegion', params)
    def setUp(self):
        self.root_dir = tempfile.mkdtemp()
        self.version_dirs = os.path.join(self.root_dir, 'myservice',
                                         '2014-01-01')
        os.makedirs(self.version_dirs)
        self.model_file = os.path.join(self.version_dirs, 'service-2.json')
        self.waiter_model_file = os.path.join(self.version_dirs,
                                              'waiters-2.json')
        self.paginator_model_file = os.path.join(self.version_dirs,
                                                 'paginators-1.json')
        self.example_model_file = os.path.join(self.version_dirs,
                                               'examples-1.json')

        self.json_model = {}
        self.nested_json_model = {}
        self._setup_models()
        self.build_models()
        self.events = HierarchicalEmitter()
        self.setup_client()
        self.doc_name = 'MyDoc'
        self.doc_structure = DocumentStructure(self.doc_name, target='html')
 def get_emitter(self, event_aliases):
     emitter = HierarchicalEmitter()
     return EventAliaser(emitter, event_aliases)
 def setUp(self):
     self.emitter = HierarchicalEmitter()
     self.hook_calls = []
 def setUp(self):
     super(TestDocumentModelDrivenMethod, self).setUp()
     self.event_emitter = HierarchicalEmitter()
     self.add_shape_to_params('Bar', 'String')