Exemple #1
0
 def test_message_send(self):
     message_1 = Misc.random_string_and_numbers(prefix='Hello_')
     message_2 = Misc.random_string_and_numbers(prefix='World_')
     self.queue.add(body=message_1).add(body=message_2)
     messages = [self.queue.get_message(), self.queue.get_message()]
     assert message_1 in messages
     assert message_2 in messages
     assert self.queue.get_message() is None
Exemple #2
0
 def test_update_to_json_string(self):
     data = {
         'the answer is': 42,
         'random_string': Misc.random_string_and_numbers()
     }
     self.secrets.update_to_json_string(data)
     assert self.secrets.value_from_json_string() == data
 def __init__(self, blocks, action_id=None, block_id=None):
     self.action_id = action_id
     self.block_id = block_id
     self.blocks = blocks
     self.text = None
     self.fields = []
     self.accessory = {}
     if block_id is None:
         self.block_id = Misc.random_string_and_numbers(4, 'block_')
 def render(self):
     if self.block_id is None:
         self.block_id = Misc.random_string_and_numbers(4, 'block_')
     self.blocks.append({
         "type": "actions",
         "block_id": self.block_id,
         "elements": self.elements
     })
     return self
Exemple #5
0
    def _test_lambda_write_cloud_watch__with_asserts(self):
        group_name = '/unit-tests/test_log_group'
        stream_name = Misc.random_string_and_numbers(prefix='tmp_stream_')
        message = 'this is a message sent from an lambda function'
        lambda_name = 'osbot_aws.lambdas.dev.write_cloud_watch_log'
        log_group_arn = 'arn:aws:logs:eu-west-2:244560807427:log-group:{0}*'.format(
            group_name)
        policy_name = 'temp_policy_for_lambda_write_cloud_watch'
        role_name = 'temp_role_for_lambda_invocation'
        policy_actions = ['logs:PutLogEvents']

        logs = Logs(group_name=group_name, stream_name=stream_name)
        logs.group_create()
        logs.stream_create()

        iam_role = IAM(role_name=role_name)
        iam_policy = IAM_Policy(policy_name=policy_name)
        iam_policy.add_statement_allow(policy_actions, [log_group_arn])

        policy_arn = iam_policy.create(
            delete_before_create=True).get('policy_arn')

        assert iam_policy.exists() is True
        assert iam_role.role_exists() is True
        assert logs.group_exists() is True
        assert logs.stream_exists() is True
        assert set(iam_role.role_policies()) == {
            'AWSXrayWriteOnlyAccess', 'policy_temp_role_for_lambda_invocation'
        }

        iam_role.role_policy_attach(policy_arn)

        assert set(iam_role.role_policies()) == {
            'AWSXrayWriteOnlyAccess', 'policy_temp_role_for_lambda_invocation',
            'temp_policy_for_lambda_write_cloud_watch'
        }

        sleep(10)  # wait for AWS to propagate role update
        payload = {
            'group_name': group_name,
            'stream_name': stream_name,
            'message': message
        }
        lambda_obj = Lambda_Package(lambda_name)  #.update_with_root_folder()
        result = lambda_obj.invoke(payload)

        sleep(1)  # wait for Cloudwatch to update
        assert result.get('status') == 'ok'
        assert logs.messages() == [message]

        assert iam_policy.delete() is True
        assert logs.group_delete() is True
        assert logs.group_exists() is False
        assert set(iam_role.role_policies()) == {
            'AWSXrayWriteOnlyAccess', 'policy_temp_role_for_lambda_invocation'
        }
Exemple #6
0
 def test_log_group_create_delete_exists_info(self):
     tmp_log_group = Misc.random_string_and_numbers(
         prefix='/unit-tests/test_log_group_')
     temp_logs = Logs(tmp_log_group, '')
     assert temp_logs.group_exists() is False
     assert temp_logs.group_create() is True
     assert temp_logs.group_exists() is True
     assert temp_logs.group_info().get('logGroupName') == tmp_log_group
     assert temp_logs.group_delete() == True
     assert temp_logs.group_exists() is False
 def __init__(self):
     self.require_js = {
         "paths": {
             "vis":
             "https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min"
         }
     }
     self.div_id = Misc.random_string_and_numbers(prefix='network_')
     #self.test = 42
     self.setup_code = """
Exemple #8
0
 def __init__(self, width="100%", height=800):
     self.frame_id = Misc.random_string_and_numbers(prefix='go_view_')
     self.frame_id = 'go_view_12345'
     self.src = '/view/html/go-js/incremental-tree.html'
     self.nodes = []  # keep track of nodes added
     self.edges = []
     self.link_types = []
     self.width = width
     self.height = height
     self.verbose = False
     pass
Exemple #9
0
    def test_update(self):
        with Temp_Lambda() as temp_lambda:
            tmp_text = Misc.random_string_and_numbers(prefix='updated code ')
            temp_lambda.tmp_folder.create_temp_file(
                'def run(event, context): return "{0}"'.format(tmp_text))
            temp_lambda.aws_lambda.set_folder_code(
                temp_lambda.tmp_folder.folder)
            result = temp_lambda.aws_lambda.update()
            status = result.get('status')
            data = result.get('data')

            assert 'TracingConfig' in data[
                'update_code']  #set(data) == { 'CodeSha256', 'CodeSize', 'Description', 'FunctionArn', 'FunctionName', 'Handler', 'LastModified', 'MemorySize', 'ResponseMetadata', 'RevisionId', 'Role', 'Runtime', 'Timeout', 'TracingConfig', 'Version'}
            assert status == 'ok'
            assert temp_lambda.aws_lambda.invoke() == tmp_text
Exemple #10
0
 def handle_dialog_suggestion(self, data):
     tmp = Misc.random_string_and_numbers()
     return {
                 "options": [
                     {
                         "text": "Unexpected sentience: {0}".format(tmp),
                         "value": "AI-2323"
                     },
                     {
                         "text": "Bot biased toward other bots: {0}".format(data.get('value')),
                         "value": "SUPPORT-42"
                     },
                     {
                         "text": "Bot broke my toaster",
                         "value": "IOT-75"
                     }
                 ]
             }
Exemple #11
0
    def test_lambda_write_cloud_watch(self):
        group_name = '/aws/lambda/unit-tests/test_log_group'
        stream_name = Misc.random_string_and_numbers(prefix='tmp_stream_')
        message = 'this is a message sent from an lambda function'
        lambda_name = 'osbot_aws.lambdas.dev.write_cloud_watch_log'
        logs = Logs(group_name=group_name, stream_name=stream_name).create()
        lambda_obj = Lambda_Package(lambda_name)

        payload = {
            'group_name': group_name,
            'stream_name': stream_name,
            'message': message
        }

        assert lambda_obj.invoke(payload).get('status') == 'ok'

        #sleep(0.8)
        # assert logs.messages() == ['this is a message sent from an lambda function']
        assert logs.group_delete() is True
Exemple #12
0
 def test_execute_html(self):
     html = "<h1>{0}</h1>".format(Misc.random_string_and_numbers())
     (self.jp_cell.execute_html(html).wait(0.1).output_hide().wait(
         0.2).output_show())
     assert self.jp_cell.output_html().strip() == html
Exemple #13
0
 def test_put_secret(self):
     value = Misc.random_string_and_numbers()
     self.param.put_secret(value)
     assert value == self.param.value_secret()
     assert self.param.value() != self.param.value_secret()
Exemple #14
0
 def test_put(self):
     value = Misc.random_string_and_numbers()
     assert self.param.get().get('Type') == 'String'
     self.param.put(value)
     assert self.param.value() == value
Exemple #15
0
    def test_value(self):
        temp_value = Misc.random_string_and_numbers()
        self.secrets.update(temp_value)
        assert self.secrets.value() == temp_value

        assert self.secrets.set_id('abcd').value() is None
Exemple #16
0
 def setUp(self):
     self.render_page = Render_Page(headless=False)
     self.random_value = Misc.random_string_and_numbers(6, "dynamic text ")
     self.html = "<html><script>document.write('{0}')</script></html>".format(
         self.random_value)
     self.tmp_img = '/tmp/lambda_png_file.png'
Exemple #17
0
 def test_text_set_value(self):
     text = Misc.random_string_and_numbers()
     self.jp_cell.select(0).text(text)
     assert self.jp_cell.text() == text
 def test_exec(self):
     tmp_value = Misc.random_string_and_numbers()
     code = "tmp_var='{0}' \nprint(tmp_var)".format(tmp_value)
     params = [self.short_id, code, {'original': 'slack data'}]
     assert tmp_value == Jupyter_Web_Commands.exec(params=params).strip()
Exemple #19
0
 def setUp(self):
     self.lambda_name = "temp_lambda_{0}".format(
         Misc.random_string_and_numbers())
     self.package = Lambda_Package(self.lambda_name)
 def __init__(self, blocks, block_id):
     self.block_id = block_id
     self.blocks   = blocks
     self.elements = []
     if block_id is None:
         self.block_id = Misc.random_string_and_numbers(4, 'block_')
 def test_markdown(self):
     markdown = Misc.random_string_and_numbers(prefix='# Created from Lambda ... ')
     payload  = {"params": ['markdown', markdown, " \n normal text"]}
     png_data = self.lambda_browser.invoke(payload)
     self._save_png_file(png_data)
 def test_rename(self):
     name        = Misc.random_string_and_numbers()
     assert self.jp_session.rename(name).get('name') == name
     assert self.jp_session.info  (    ).get('name') == name