def _test_sqs_to_lamdba_to_sqs(self): queue_1 = Queue('unit_tests_temp_queue__1').create() queue_2 = Queue('unit_tests_temp_queue__2').create() lambda_obj = Lambda_Package('osbot_aws.lambdas.pocs.send_event_data_to_queue') #.update_with_root_folder() payload = {'queue_url': queue_2.url(), 'message': 'test 123'} #queue_1.attributes_update({'VisibilityTimeout': '61'}) # needs to be bigger than lambda timeout queue_1_arn = queue_1.attributes().get('QueueArn') function_arn = lambda_obj._lambda.function_Arn() #Dev.pprint(lambda_obj.role_arn) # needed to add the extra priv to pull SQS messages #result = lambda_obj._lambda.boto_lambda().list_event_source_mappings(EventSourceArn=queue_1_arn) # result = lambda_obj._lambda.boto_lambda().create_event_source_mapping( # EventSourceArn=queue_1_arn, # FunctionName=function_arn, # Enabled=True, # BatchSize=1 # ) queue_1.push('some message 1') queue_1.push('some message 2') queue_1.push('some message 3') queue_1.push('some message 4') #lambda_obj.invoke(payload) sleep(2) Dev.pprint(queue_2.pull()) Dev.pprint(queue_2.pull()) Dev.pprint(queue_2.pull()) Dev.pprint(queue_2.pull()) queue_1.delete() queue_2.delete()
class Temp_Queue: def __init__(self): self.name_prefix = 'unit_tests_temp_queue_' self.queue_name = Misc.random_string_and_numbers( prefix=self.name_prefix) self.queue = None def __enter__(self): self.queue = Queue(self.queue_name).create() return self def __exit__(self, type, value, traceback): assert self.queue.delete() is True