def results_to_html(results_dict, cs_base_url, bucket, test_name, builder_name, build_number): """Convert list of test results into html format.""" test_rows_header, test_rows = create_test_table(results_dict, cs_base_url, test_name) suite_rows_header, suite_rows, suite_row_footer = create_suite_table( results_dict) suite_table_values = { 'table_id': 'suite-table', 'table_headers': suite_rows_header, 'table_row_blocks': suite_rows, 'table_footer': suite_row_footer, } test_table_values = { 'table_id': 'test-table', 'table_headers': test_rows_header, 'table_row_blocks': test_rows, } main_template = JINJA_ENVIRONMENT.get_template( os.path.join('template', 'main.html')) dest = google_storage_helper.unique_name( '%s_%s_%s' % (test_name, builder_name, build_number)) result_details_link = google_storage_helper.get_url_link( dest, '%s/html' % bucket) return (main_template.render( # pylint: disable=no-member {'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(result_details_link) }), dest, result_details_link)
def results_to_html(results_dict, cs_base_url, bucket, test_name, builder_name, build_number): """Convert list of test results into html format.""" test_rows_header, test_rows = create_test_table(results_dict, cs_base_url, test_name) suite_rows_header, suite_rows, suite_row_footer = create_suite_table( results_dict) suite_table_values = { 'table_id': 'suite-table', 'table_headers': suite_rows_header, 'table_row_blocks': suite_rows, 'table_footer': suite_row_footer, } test_table_values = { 'table_id': 'test-table', 'table_headers': test_rows_header, 'table_row_blocks': test_rows, } main_template = JINJA_ENVIRONMENT.get_template( os.path.join('template', 'main.html')) dest = google_storage_helper.unique_name( '%s_%s_%s' % (test_name, builder_name, build_number)) result_details_link = google_storage_helper.get_url_link( dest, '%s/html' % bucket) return (main_template.render( # pylint: disable=no-member {'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(result_details_link) }), dest, result_details_link)
def _SaveScreenshot(self, device, screenshot_host_dir, screenshot_device_file, test_name, results): if screenshot_host_dir: screenshot_host_file = os.path.join( screenshot_host_dir, '%s-%s.png' % ( test_name, time.strftime('%Y%m%dT%H%M%S-UTC', time.gmtime()))) if device.FileExists(screenshot_device_file.name): try: device.PullFile(screenshot_device_file.name, screenshot_host_file) finally: screenshot_device_file.close() logging.info( 'Saved screenshot for %s to %s.', test_name, screenshot_host_file) if self._test_instance.gs_results_bucket: link = google_storage_helper.upload( google_storage_helper.unique_name( 'screenshot', device=device), screenshot_host_file, bucket=('%s/screenshots' % self._test_instance.gs_results_bucket)) for result in results: result.SetLink('post_test_screenshot', link)
def _SaveScreenshot(self, device, screenshot_host_dir, screenshot_device_file, test_name, results): if screenshot_host_dir: screenshot_host_file = os.path.join( screenshot_host_dir, '%s-%s.png' % ( test_name, time.strftime('%Y%m%dT%H%M%S-UTC', time.gmtime()))) if device.FileExists(screenshot_device_file.name): try: device.PullFile(screenshot_device_file.name, screenshot_host_file) finally: screenshot_device_file.close() logging.info( 'Saved screenshot for %s to %s.', test_name, screenshot_host_file) if self._test_instance.gs_results_bucket: link = google_storage_helper.upload( google_storage_helper.unique_name( 'screenshot', device=device), screenshot_host_file, bucket=('%s/screenshots' % self._test_instance.gs_results_bucket)) for result in results: result.SetLink('post_test_screenshot', link)
def upload_screenshot_set(json_path, test_name, bucket, builder_name, build_number): screenshot_set = ui_screenshot_set(json_path) if not screenshot_set: return None dest = google_storage_helper.unique_name( 'screenshots_%s_%s_%s' % (test_name, builder_name, build_number), suffix='.json') with tempfile.NamedTemporaryFile(suffix='.json') as temp_file: temp_file.write(screenshot_set) temp_file.flush() return google_storage_helper.upload(name=dest, filepath=temp_file.name, bucket='%s/json' % bucket, content_type='application/json', authenticated_link=True)
def results_to_html(results_dict, cs_base_url, bucket, test_name, builder_name, build_number, local_output): """Convert list of test results into html format. Args: local_output: Whether this results file is uploaded to Google Storage or just a local file. """ test_rows_header, test_rows = create_test_table( results_dict, cs_base_url, test_name) suite_rows_header, suite_rows, suite_row_footer = create_suite_table( results_dict) suite_table_values = { 'table_id': 'suite-table', 'table_headers': suite_rows_header, 'table_row_blocks': suite_rows, 'table_footer': suite_row_footer, } test_table_values = { 'table_id': 'test-table', 'table_headers': test_rows_header, 'table_row_blocks': test_rows, } main_template = JINJA_ENVIRONMENT.get_template( os.path.join('template', 'main.html')) if local_output: html_render = main_template.render( # pylint: disable=no-member { 'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(None), }) return (html_render, None, None) else: dest = google_storage_helper.unique_name( '%s_%s_%s' % (test_name, builder_name, build_number)) result_details_link = google_storage_helper.get_url_link( dest, '%s/html' % bucket) html_render = main_template.render( # pylint: disable=no-member { 'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(result_details_link), }) return (html_render, dest, result_details_link)
def results_to_html(results_dict, cs_base_url, bucket, test_name, builder_name, build_number, local_output): """Convert list of test results into html format. Args: local_output: Whether this results file is uploaded to Google Storage or just a local file. """ test_rows_header, test_rows = create_test_table(results_dict, cs_base_url, test_name) suite_rows_header, suite_rows, suite_row_footer = create_suite_table( results_dict) suite_table_values = { 'table_id': 'suite-table', 'table_headers': suite_rows_header, 'table_row_blocks': suite_rows, 'table_footer': suite_row_footer, } test_table_values = { 'table_id': 'test-table', 'table_headers': test_rows_header, 'table_row_blocks': test_rows, } main_template = JINJA_ENVIRONMENT.get_template( os.path.join('template', 'main.html')) if local_output: html_render = main_template.render( # pylint: disable=no-member { 'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(None), }) return (html_render, None, None) else: dest = google_storage_helper.unique_name( '%s_%s_%s' % (test_name, builder_name, build_number)) result_details_link = google_storage_helper.get_url_link( dest, '%s/html' % bucket) html_render = main_template.render( # pylint: disable=no-member { 'tb_values': [suite_table_values, test_table_values], 'feedback_url': feedback_url(result_details_link), }) return (html_render, dest, result_details_link)
def upload_screenshot_set(json_path, test_name, bucket, builder_name, build_number): screenshot_set = ui_screenshot_set(json_path) if not screenshot_set: return None dest = google_storage_helper.unique_name( 'screenshots_%s_%s_%s' % (test_name, builder_name, build_number), suffix='.json') with tempfile.NamedTemporaryFile(suffix='.json') as temp_file: temp_file.write(screenshot_set) temp_file.flush() return google_storage_helper.upload( name=dest, filepath=temp_file.name, bucket='%s/json' % bucket, content_type='application/json', authenticated_link=True)
def _UploadTestArtifacts(self, device, test_artifacts_dir): # TODO(jbudorick): Reconcile this with the output manager once # https://codereview.chromium.org/2933993002/ lands. if test_artifacts_dir: with tempfile_ext.NamedTemporaryDirectory() as test_artifacts_host_dir: device.PullFile(test_artifacts_dir.name, test_artifacts_host_dir) with tempfile_ext.NamedTemporaryDirectory() as temp_zip_dir: zip_base_name = os.path.join(temp_zip_dir, 'test_artifacts') test_artifacts_zip = shutil.make_archive( zip_base_name, 'zip', test_artifacts_host_dir) link = google_storage_helper.upload( google_storage_helper.unique_name( 'test_artifacts', device=device), test_artifacts_zip, bucket='%s/test_artifacts' % ( self._test_instance.gs_test_artifacts_bucket)) logging.info('Uploading test artifacts to %s.', link) return link return None
def _UploadTestArtifacts(self, device, test_artifacts_dir): # TODO(jbudorick): Reconcile this with the output manager once # https://codereview.chromium.org/2933993002/ lands. if test_artifacts_dir: with tempfile_ext.NamedTemporaryDirectory() as test_artifacts_host_dir: device.PullFile(test_artifacts_dir.name, test_artifacts_host_dir) with tempfile_ext.NamedTemporaryDirectory() as temp_zip_dir: zip_base_name = os.path.join(temp_zip_dir, 'test_artifacts') test_artifacts_zip = shutil.make_archive( zip_base_name, 'zip', test_artifacts_host_dir) link = google_storage_helper.upload( google_storage_helper.unique_name( 'test_artifacts', device=device), test_artifacts_zip, bucket='%s/test_artifacts' % ( self._test_instance.gs_test_artifacts_bucket)) logging.info('Uploading test artifacts to %s.', link) return link return None