From 41a50e142dcd0ed29f00e05f2c9b89f1e8b0bf66 Mon Sep 17 00:00:00 2001 From: Chen Chen Date: Wed, 27 Apr 2022 15:07:07 -0400 Subject: [PATCH 1/3] ReportSubmitter now uses report object --- ga4gh/testbed/submit/report_submitter.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ga4gh/testbed/submit/report_submitter.py b/ga4gh/testbed/submit/report_submitter.py index 1745411..0c817eb 100644 --- a/ga4gh/testbed/submit/report_submitter.py +++ b/ga4gh/testbed/submit/report_submitter.py @@ -1,21 +1,23 @@ from re import sub import requests +import json +from ga4gh.testbed.report.report import Report class ReportSubmitter(): - def submit_report(series_id, series_token, report, url="http://localhost:4500/reports"): + def submit_report(series_id, series_token, report:Report, url="http://localhost:4500/reports"): ''' Submits a report to the GA4GH testbed api. Required arguments: series_id - A series ID is needed by server to group the report series_token - A token is needed to verify authenticity - report - GA4GH report in JSON format + report - GA4GH report object url - URL of the testbed server ''' header = {"GA4GH-TestbedReportSeriesId": series_id, "GA4GH-TestbedReportSeriesToken": series_token} - submit_request = requests.post(url, headers=header ,json=report) + submit_request = requests.post(url, headers=header ,json=json.loads(report.to_json())) results = { "status_code": submit_request.status_code, From 0ac425ff9985272263ef9512cb714617153a0dc2 Mon Sep 17 00:00:00 2001 From: Chen Chen Date: Mon, 16 May 2022 10:37:36 -0400 Subject: [PATCH 2/3] updated testing for report submitter --- ga4gh/testbed/submit/report_submitter.py | 4 +++ .../test_submit/test_report_submitter.py | 31 ++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/ga4gh/testbed/submit/report_submitter.py b/ga4gh/testbed/submit/report_submitter.py index 0c817eb..52b1bdf 100644 --- a/ga4gh/testbed/submit/report_submitter.py +++ b/ga4gh/testbed/submit/report_submitter.py @@ -16,6 +16,10 @@ def submit_report(series_id, series_token, report:Report, url="http://localhost: report - GA4GH report object url - URL of the testbed server ''' + + if type(report) != Report: + raise Exception() + header = {"GA4GH-TestbedReportSeriesId": series_id, "GA4GH-TestbedReportSeriesToken": series_token} submit_request = requests.post(url, headers=header ,json=json.loads(report.to_json())) diff --git a/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py b/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py index a3666c6..8db552a 100644 --- a/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py +++ b/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py @@ -1,7 +1,8 @@ import pytest from ga4gh.testbed.submit.report_submitter import ReportSubmitter +from ga4gh.testbed.report.report import Report -sample_report = {"schema_name":"ga4gh-testbed-report","schema_version":"0.1.0","testbed_name":"refget-compliance-suite","testbed_version":"","testbed_description":"","platform_name":"","platform_description":"","input_parameters":{},"start_time":"2022-03-22T17:45:37Z","end_time":"2022-03-22T17:46:32Z","status":"PASS","summary":{"unknown":0,"passed":49,"warned":0,"failed":0,"skipped":20},"phases":[]} +sample_report = Report() submit_report_inputs = "series_id,series_token,report,url,status_code" submit_report_cases = [ @@ -19,20 +20,20 @@ "http://localhost:4500/reports", 200 ), - ( - "1edb5213-52a2-434f-a7b8-b101fea8fb30", - "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", - "", - "http://localhost:4500/reports", - 400 - ), - ( - "1edb5213-52a2-434f-a7b8-b101fea8fb30", - "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", - {}, - "http://localhost:4500/reports", - 500 - ), + #( + # "1edb5213-52a2-434f-a7b8-b101fea8fb30", + # "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", + # "", + # "http://localhost:4500/reports", + # 400 + #), + #( + # "1edb5213-52a2-434f-a7b8-b101fea8fb30", + # "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", + # {}, + # "http://localhost:4500/reports", + # 500 + #), ( "", "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", From f46edae3f9d4a576554972725a0fecdb7fc8758c Mon Sep 17 00:00:00 2001 From: Chen Chen Date: Tue, 17 May 2022 10:38:33 -0400 Subject: [PATCH 3/3] add error message upon recieving non ga4gh type report --- ga4gh/testbed/submit/report_submitter.py | 15 ++++++---- .../test_submit/test_report_submitter.py | 28 +++++++++---------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/ga4gh/testbed/submit/report_submitter.py b/ga4gh/testbed/submit/report_submitter.py index 52b1bdf..f8d68ae 100644 --- a/ga4gh/testbed/submit/report_submitter.py +++ b/ga4gh/testbed/submit/report_submitter.py @@ -16,18 +16,21 @@ def submit_report(series_id, series_token, report:Report, url="http://localhost: report - GA4GH report object url - URL of the testbed server ''' + results = { + "status_code": None, + "error_message": None, + "report_id": None + } if type(report) != Report: - raise Exception() + results["status_code"] = 400 + results["error_message"] = "Report submitted is not a GA4GH Report object" + return results header = {"GA4GH-TestbedReportSeriesId": series_id, "GA4GH-TestbedReportSeriesToken": series_token} submit_request = requests.post(url, headers=header ,json=json.loads(report.to_json())) - results = { - "status_code": submit_request.status_code, - "error_message": None, - "report_id": None - } + results["status_code"] = submit_request.status_code if submit_request.status_code == 200: results["report_id"] = submit_request.json()["id"] diff --git a/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py b/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py index 8db552a..1a6dccc 100644 --- a/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py +++ b/tests/test_unit/test_ga4gh/test_testbed/test_submit/test_report_submitter.py @@ -20,20 +20,20 @@ "http://localhost:4500/reports", 200 ), - #( - # "1edb5213-52a2-434f-a7b8-b101fea8fb30", - # "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", - # "", - # "http://localhost:4500/reports", - # 400 - #), - #( - # "1edb5213-52a2-434f-a7b8-b101fea8fb30", - # "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", - # {}, - # "http://localhost:4500/reports", - # 500 - #), + ( + "1edb5213-52a2-434f-a7b8-b101fea8fb30", + "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", + "", + "http://localhost:4500/reports", + 400 + ), + ( + "1edb5213-52a2-434f-a7b8-b101fea8fb30", + "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn", + {}, + "http://localhost:4500/reports", + 400 + ), ( "", "K5pLbwScVu8rEoLLj8pRy5Wv7EXTVahn",