Beispiel #1
0
    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()
Beispiel #2
0
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