def __init__(self, handler):
     load_dotenv()
     self.osbot_setup = OSBot_Setup()
     self.handler = handler
     self.module_name = handler.__module__
     self.role_arn = Temp_Aws_Roles().for_lambda_invocation__role_arn()
     self.package = self.get_package()
Exemple #2
0
 def __init__(self, lambda_name=None, delete_on_exit=True):
     self.lambda_name    = lambda_name or "temp_lambda_{0}".format(random_string_and_numbers())
     self.aws_lambda     = Lambda(self.lambda_name)
     self.tmp_folder     = Temp_Folder_With_Lambda_File(self.lambda_name).create_temp_file()
     self.role_arn       = Temp_Aws_Roles().for_lambda_invocation__role_arn() # todo: refactor to have option to create the role programatically (needs feature to wait for role to be available)
     self.create_log     = None
     self.delete_on_exit = delete_on_exit
     self.s3_bucket      = AWS_Config().lambda_s3_bucket()
     self.s3_key         = 'unit_tests/lambdas/{0}.zip'.format(self.lambda_name)
     self.s3             = self.aws_lambda.s3()
Exemple #3
0
 def __init__(self):
     self.name           = "temp_lambda_{0}".format(Misc.random_string_and_numbers())
     self.temp_lambda    = Lambda(self.name)
     self.tmp_folder     = Temp_Folder_Code(self.name)
     self.role_arn       = Temp_Aws_Roles().for_lambda_invocation()
     self.create_log     = None
     self.delete_on_exit = True
     self.lambda_name    = 'tmp_lambda_dev_test'
     self.s3_bucket      = Globals.lambda_s3_bucket
     self.s3_key         =  'unit_tests/lambdas/{0}.zip'.format(self.lambda_name)
    def __init__(self, lambda_name):
        self.lambda_name = lambda_name
        self.aws_lambda = Lambda(self.lambda_name)
        self.s3_bucket = Globals.lambda_s3_bucket
        self.s3_key = f'{Globals.lambda_s3_key_prefix}/{self.lambda_name}.zip'
        self.role_arn = Temp_Aws_Roles().for_lambda_invocation()
        self.tmp_folder = Files.temp_folder('tmp_lambda_')

        (self.aws_lambda.set_s3_bucket(self.s3_bucket).set_s3_key(
            self.s3_key).set_role(self.role_arn).set_folder_code(
                self.tmp_folder))
Exemple #5
0
    def __init__(self, lambda_name):
        self.lambda_name = lambda_name
        self._lambda = Lambda(self.lambda_name)
        self.tmp_s3_bucket = 'gs-lambda-tests'
        self.tmp_s3_key = 'unit_tests/lambdas/{0}.zip'.format(self.lambda_name)
        self.role_arn = Temp_Aws_Roles().for_lambda_invocation()
        self.tmp_folder = Files.temp_folder('tmp_lambda_')

        (self._lambda.set_s3_bucket(self.tmp_s3_bucket).set_s3_key(
            self.tmp_s3_key).set_role(self.role_arn).set_folder_code(
                self.tmp_folder))
Exemple #6
0
    def __init__(self,lambda_name):
        self.lambda_name   = lambda_name
        self.aws_lambda    = Lambda(self.lambda_name)
        self.s3_bucket     = AWS_Config().lambda_s3_bucket()
        self.s3_key        = f'{AWS_Config().lambda_s3_folder_lambdas()}/{self.lambda_name}.zip'
        self.role_arn      = Temp_Aws_Roles().for_lambda_invocation__role_arn()
        self.tmp_folder    = Files.temp_folder('tmp_lambda_')

        (self.aws_lambda.set_s3_bucket   (self.s3_bucket    )
                        .set_s3_key      (self.s3_key       )
                        .set_role        (self.role_arn     )
                        .set_folder_code (self.tmp_folder  ))
class test_Temp_Aws_Roles(TestCase):
    def setUp(self):
        self.temp_aws_roles = Temp_Aws_Roles()
        self.account_id = '244560807427'

    def test_for_lambda_invocation(self):
        role_arn = self.temp_aws_roles.for_lambda_invocation()
        assert role_arn == 'arn:aws:iam::244560807427:role/temp_role_for_lambda_invocation'

    @unittest.skip(
        'causes side effect with other tests, due to the fact that AWS takes a while to sync the privileges internally'
    )
    def create_test_for_lambda_invocation(self):
        role_name = self.temp_aws_roles.role_name__for_lambda_invocation
        role_arn = 'arn:aws:iam::{0}:role/{1}'.format(self.account_id,
                                                      role_name)
        assert role_arn == self.temp_aws_roles.for_lambda_invocation(
            delete_existing=True)
        self.iam = IAM().set_role_name(role_name)
        policies_statements = self.iam.role_policies_statements(
            just_statements=True)
        resource = policies_statements[0].get('Resource')[0]
        assert self.account_id in resource  # confirm account_id value is in there (regression test for bug)
 def setup_test_enviroment():  # todo: refactor into separate class
     print()
     temp_aws_roles = Temp_Aws_Roles()
     if temp_aws_roles.for_lambda_invocation__not_exists():
         temp_aws_roles.for_lambda_invocation__create()
Exemple #9
0
 def test_check_aws_role(self):
     assert Temp_Aws_Roles().for_lambda_invocation_exists()
 def setUp(self):
     self.temp_aws_roles = Temp_Aws_Roles()
     self.account_id = '244560807427'