def inject_s3_transfer_methods(class_attributes, **kwargs): utils.inject_attribute(class_attributes, 'upload_file', upload_file) utils.inject_attribute(class_attributes, 'download_file', download_file) utils.inject_attribute(class_attributes, 'copy', copy) utils.inject_attribute(class_attributes, 'upload_fileobj', upload_fileobj) utils.inject_attribute(class_attributes, 'download_fileobj', download_fileobj)
def inject_object_methods(class_attributes, **kwargs): utils.inject_attribute(class_attributes, 'upload_file', object_upload_file) utils.inject_attribute(class_attributes, 'download_file', object_download_file) utils.inject_attribute(class_attributes, 'copy', object_copy) utils.inject_attribute(class_attributes, 'upload_fileobj', object_upload_fileobj) utils.inject_attribute(class_attributes, 'download_fileobj', object_download_fileobj)
def inject(self, class_attributes, service_context, event_name, **kwargs): resource_name = event_name.rsplit(".")[-1] action = Action(self.name, self.model, {}) self.function.__name__ = self.name self.function.__doc__ = ActionDocstring( resource_name=resource_name, event_emitter=self.emitter, action_model=action, service_model=service_context.service_model, include_signature=False) inject_attribute(class_attributes, self.name, self.function)
def test_shadowing_existing_var_raises_exception(self): class_attributes = {'foo': 'preexisting'} with self.assertRaises(RuntimeError): utils.inject_attribute(class_attributes, 'foo', 'bar')
def test_inject_attributes_with_no_shadowing(self): class_attributes = {} utils.inject_attribute(class_attributes, 'foo', 'bar') self.assertEqual(class_attributes['foo'], 'bar')
def inject_object_summary_methods(class_attributes, **kwargs): utils.inject_attribute(class_attributes, 'load', object_summary_load)
def shadows_put_object(class_attributes, **kwargs): utils.inject_attribute(class_attributes, 'put_object', 'invalid')