コード例 #1
0
class test_screenshot_from_codebuild(TestCase):
    def setUp(self):
        self.code_build = CodeBuild_Jupyter()
        self.jp = Jupyter()
        self.png_data = None

    def tearDown(self):
        if self.png_data:
            png_file = '/tmp/lambda_png_file.png'
            with open(png_file, "wb") as fh:
                fh.write(base64.decodebytes(self.png_data.encode()))
            Dev.pprint("Png data with size {0} saved to {1}".format(
                len(self.png_data), png_file))

    def test_get_screenshot_using_local_chrome(self):
        url, token = self.code_build.get_server_details_from_logs()
        self.jp.set_url(url).set_token(token)
        self.jp.login()
        #self.jp.open('aaa')
        self.png_file = self.jp.screenshot()
        Dev.pprint(self.png_file)

    def test_get_screenshot_using_lambda(self):
        self.aws_lambda = Lambda_Package(
            'osbot_jupyter.lambdas.jupyter_server')
        url, token = self.code_build.get_server_details_from_logs()
        #print(url,token)
        #return
        notebook = 'test-1'
        payload = {'url': url, 'token': token, 'notebook': notebook}
        self.png_data = self.aws_lambda.invoke(payload)
コード例 #2
0
 def get_active_server_details(self):
     build_id = self.get_active_build_id()
     if build_id is None:
         return None
         #self.start_build_and_wait_for_jupyter_load()
         #build_id = self.get_active_build_id()
     code_build = CodeBuild_Jupyter(build_id)
     return code_build.get_server_details_from_logs()
コード例 #3
0
 def save_active_server_details(self, file):
     build_id = self.get_active_build_id()
     server, token = CodeBuild_Jupyter(
         build_id).get_server_details_from_logs()
     config = {'build_id': build_id, 'server': server, 'token': token}
     Json.save_file(file, config)
     return config
コード例 #4
0
 def start_build_for_repo_and_wait_for_jupyter_load(self,
                                                    repo_name,
                                                    user='******',
                                                    server_size='small'):
     result = self.start_build_for_repo(repo_name=repo_name,
                                        user=user,
                                        server_size=server_size)
     if result:
         build_id = result.get('data')
         build = CodeBuild_Jupyter(build_id=build_id)
         return self.wait_for_jupyter_load(build)
コード例 #5
0
 def get_active_builds(self, project_name=None, stop_when_match=False):
     build_ids = list(self.code_build.project_builds_ids(
         self.project_name))[0:self.max_builds]
     build_infos = self.code_build.codebuild.batch_get_builds(
         ids=build_ids).get('builds')
     builds = {}
     for build_info in build_infos:
         build_id = build_info.get('id')
         if build_info.get('currentPhase') != 'COMPLETED':
             if project_name is None or project_name == build_info.get(
                     'projectName'):
                 builds[build_id] = CodeBuild_Jupyter(build_id=build_id,
                                                      build_info=build_info)
                 if stop_when_match:
                     return builds
     return builds
コード例 #6
0
class test_CodeBuild_Jupyter(Test_Helper):
    def setUp(self):
        super().setUp()
        self.result = None
        self.build_id = 'OSBot-Jupyter:baea0626-3ad2-4e47-a41e-ff82ce5865ad'
        self.api      = CodeBuild_Jupyter(build_id = self.build_id)


    def tearDown(self):
        if self.result:
            Dev.pprint(self.result)

    def test_start_new_build(self):
        self.build_id = CodeBuild_Jupyter_Helper().start_build_and_wait_for_jupyter_load().build_id
        print(self.build_id)
        self.api = CodeBuild_Jupyter(build_id=self.build_id)
        self.result = self.api.url()


    def test_build_info(self):
        self.result = self.api.build_info()

    def test_build_status__build_phase(self):
        assert self.api.build_status() == 'IN_PROGRESS'
        assert self.api.build_phase() == 'BUILD'

    def test_build_log_messages(self):
        messages = self.api.build_log_messages()
        assert 'Waiting for agent ping' in messages.pop(0)

    def test_get_server_details_from_logs(self):
        self.result = self.api.get_server_details_from_logs()

    def test_build_stop(self):
        assert self.api.build_stop() == 'STOPPED'

    def test_url(self):
        self.result = self.api.url()
コード例 #7
0
 def test__find_detect_build_that_fails_to_build(self):
     build_id = 'OSBot-Jupyter:6581a0da-1f88-4346-874f-6b80ab071cf9'
     jp_code_build = CodeBuild_Jupyter(build_id)
     messages = jp_code_build.build_log_messages()
     print(' '.join(messages))
コード例 #8
0
 def test_start_new_build(self):
     self.build_id = CodeBuild_Jupyter_Helper().start_build_and_wait_for_jupyter_load().build_id
     print(self.build_id)
     self.api = CodeBuild_Jupyter(build_id=self.build_id)
     self.result = self.api.url()
コード例 #9
0
 def setUp(self):
     super().setUp()
     self.result = None
     self.build_id = 'OSBot-Jupyter:baea0626-3ad2-4e47-a41e-ff82ce5865ad'
     self.api      = CodeBuild_Jupyter(build_id = self.build_id)
コード例 #10
0
 def code_build_Jupyter(self):
     if self._code_build_Jupyter is None and self.build_id:
         self._code_build_Jupyter = CodeBuild_Jupyter(self.build_id)
     return self._code_build_Jupyter
コード例 #11
0
 def setUp(self):
     self.code_build = CodeBuild_Jupyter()
     self.jp = Jupyter()
     self.png_data = None
コード例 #12
0
 def start_build(self):
     build_arn = self.code_build.build_start()
     build_id = build_arn.split('build/').pop()
     return CodeBuild_Jupyter(build_id=build_id)