示例#1
0
    def _get_delivery_data(self, case_id: str) -> dict:
        """Fetch all data needed to render a delivery report."""

        report_data = dict()
        case_obj = self._get_case_from_statusdb(case_id)
        analysis_obj = case_obj.analyses[0]

        report_data["case"] = case_obj.name
        report_data["pipeline"] = analysis_obj.pipeline
        report_data["pipeline_version"] = analysis_obj.pipeline_version
        report_data["customer_name"] = case_obj.customer.name
        report_data["customer_internal_id"] = case_obj.customer.internal_id
        report_data["customer_invoice_address"] = case_obj.customer.invoice_address
        report_data["scout_access"] = bool(case_obj.customer.scout_access)
        report_data["report_version"] = ReportHelper.get_report_version(analysis_obj)
        report_data["previous_report_version"] = ReportHelper.get_previous_report_version(
            analysis_obj
        )

        report_data["samples"] = self._fetch_case_samples_from_status_db(case_id)
        report_data["panels"] = self._fetch_panels_from_status_db(case_id)
        self._incorporate_lims_data(report_data)
        self._incorporate_lims_methods(report_data["samples"])
        self._incorporate_coverage_data(report_data["samples"], report_data["panels"])
        self._incorporate_trending_data(report_data, case_id)

        report_data["today"] = datetime.today()
        application_data = self._get_application_data_from_status_db(report_data["samples"])
        report_data.update(application_data)
        return report_data
示例#2
0
def test_get_previous_report_version_when_only_one(store, helpers):

    # GIVEN two analyses for the given family
    first_analysis = helpers.add_analysis(store)

    # WHEN fetching previous_report_version
    report_version = ReportHelper.get_previous_report_version(first_analysis)

    # THEN the version should be None
    assert not report_version
示例#3
0
def test_first_analysis_when_only_one(store, helpers):

    # GIVEN one analysis for the given family
    analysis = helpers.add_analysis(store)
    assert len(analysis.family.analyses) == 1

    # WHEN fetching report_version
    report_version = ReportHelper.get_report_version(analysis)

    # THEN the version should be 1
    assert report_version == 1
示例#4
0
def test_get_previous_report_version_when_two(store, helpers):

    # GIVEN two analyses for the given family
    yesterday = datetime.now() - timedelta(days=1)
    first_analysis = helpers.add_analysis(store, completed_at=datetime.now())
    helpers.add_analysis(store, first_analysis.family, completed_at=yesterday)

    # WHEN fetching previous_report_version
    report_version = ReportHelper.get_previous_report_version(first_analysis)

    # THEN the version should be 1
    assert report_version == 1
示例#5
0
def test_second_analysis_when_two(store, helpers):

    # GIVEN two analyses for the given family
    yesterday = datetime.now() - timedelta(days=1)
    first_analysis = helpers.add_analysis(store, completed_at=datetime.now())
    second_analysis = helpers.add_analysis(store,
                                           first_analysis.family,
                                           completed_at=yesterday)
    assert first_analysis.family.analyses.index(second_analysis) == 1
    assert first_analysis.family.analyses.index(first_analysis) == 0

    # WHEN fetching report_version
    report_version = ReportHelper.get_report_version(second_analysis)

    # THEN the version should be 1
    assert report_version == 1