def __recalc(self): for decision in self._decisions: for cov_obj in CoverageArchive.objects.filter(report__decision=decision): res = FillCoverageStatistics(cov_obj) cov_obj.total = res.total_coverage cov_obj.has_extra = res.has_extra cov_obj.save()
def fill_coverage_statistics(carch_id): carch = CoverageArchive.objects.get(id=carch_id) try: res = FillCoverageStatistics(carch) except Exception as e: carch.delete() raise BridgeException( 'Error while parsing coverage statistics: {}'.format(e)) carch.total = res.total_coverage carch.has_extra = res.has_extra carch.save()
def __upload_coverage(self): coverage_data = self.__read_json_file('{}.json'.format(CoverageArchive.__name__)) if not coverage_data: return for coverage in coverage_data: decision_id = self.__get_decision_id(coverage['decision']) instance = CoverageArchive( report_id=self.saved_reports[(decision_id, coverage['report'])], identifier=coverage['identifier'], name=coverage.get('name', '...') ) with open(self.__full_path(coverage['archive']), mode='rb') as fp: instance.add_coverage(fp, save=False) instance.save() res = FillCoverageStatistics(instance) instance.total = res.total_coverage instance.has_extra = res.has_extra instance.save()