| 219 | |
| 220 | |
| 221 | class FakeSession: |
| 222 | def __init__(self, emitter=None): |
| 223 | self.operation = None |
| 224 | if emitter is None: |
| 225 | emitter = HierarchicalEmitter() |
| 226 | self.emitter = emitter |
| 227 | self.profile = None |
| 228 | self.stream_logger_args = None |
| 229 | self.credentials = 'fakecredentials' |
| 230 | self.session_vars = {} |
| 231 | self.config_store = self._register_config_store() |
| 232 | self.user_agent_name = 'aws-cli' |
| 233 | self.user_agent_version = '100.100.100' |
| 234 | |
| 235 | def _register_config_store(self): |
| 236 | chain_builder = ConfigChainFactory(session=self) |
| 237 | config_store = ConfigValueStore( |
| 238 | mapping=create_botocore_default_config_mapping(chain_builder) |
| 239 | ) |
| 240 | return config_store |
| 241 | |
| 242 | def register(self, event_name, handler): |
| 243 | self.emitter.register(event_name, handler) |
| 244 | |
| 245 | def emit(self, event_name, **kwargs): |
| 246 | return self.emitter.emit(event_name, **kwargs) |
| 247 | |
| 248 | def emit_first_non_none_response(self, event_name, **kwargs): |
| 249 | responses = self.emitter.emit(event_name, **kwargs) |
| 250 | for _, response in responses: |
| 251 | if response is not None: |
| 252 | return response |
| 253 | |
| 254 | def get_component(self, name): |
| 255 | if name == 'event_emitter': |
| 256 | return self.emitter |
| 257 | if name == 'config_store': |
| 258 | return self.config_store |
| 259 | |
| 260 | def create_client(self, *args, **kwargs): |
| 261 | client = mock.Mock() |
| 262 | client.list_objects.return_value = {} |
| 263 | client.can_paginate.return_value = False |
| 264 | return client |
| 265 | |
| 266 | def get_available_services(self): |
| 267 | return ['s3'] |
| 268 | |
| 269 | def get_data(self, name): |
| 270 | return GET_DATA[name] |
| 271 | |
| 272 | def get_config_variable(self, name): |
| 273 | if name in GET_VARIABLE: |
| 274 | return GET_VARIABLE[name] |
| 275 | return self.session_vars[name] |
| 276 | |
| 277 | def get_service_model(self, name, api_version=None): |
| 278 | return botocore.model.ServiceModel(MINI_SERVICE, service_name='s3') |
no outgoing calls