Пример #1
0
 def check_get_files(cache_dir, mock_min_cov_request, request_count):
     CoverageSummary(
         cache_dir=cache_dir,
         previous_coverage_report_url=TestCoverageSummary.
         TestGetFilesSummary.default_url).get_files_summary()
     assert len(mock_min_cov_request.request_history) == request_count
     assert read_file(JSON_MIN_DATA_FILE) == read_file(
         cache_dir / 'coverage-min.json')
Пример #2
0
 def test_without_cached_data(self, tmpdir, requests_mock):
     mock_min_cov_request = requests_mock.get(
         self.default_url, json=read_file(JSON_MIN_DATA_FILE))
     files_data = CoverageSummary(
         cache_dir=tmpdir,
         previous_coverage_report_url=TestCoverageSummary.
         TestGetFilesSummary.default_url).get_files_summary()
     assert len(mock_min_cov_request.request_history) == 1
     assert read_file(JSON_MIN_DATA_FILE) == read_file(
         tmpdir.join('coverage-min.json'))
     assert files_data == read_file(JSON_MIN_DATA_FILE)['files']
    def coverage_report(self):
        if not os.path.exists(self.cov.config.data_file):
            logger.debug(f'skipping coverage report {self.cov.config.data_file} file not found.')
            return

        logger.info(f'\n{self.report_str}')

        if 'text' in self.report_types:
            txt_file_path = os.path.join(self.report_dir, 'coverage.txt')
            logger.info(f'exporting txt coverage report to {txt_file_path}')
            with open(txt_file_path, 'w') as txt_file:
                txt_file.write(self.report_str)
        if 'html' in self.report_types:
            export_report(self.cov.html_report, 'html', os.path.join(self.cov.config.html_dir, 'index.html'))
        if 'xml' in self.report_types:
            export_report(self.cov.xml_report, 'xml', self.cov.config.xml_output)
        if 'json' in self.report_types:
            export_report(self.cov.json_report, 'json', self.cov.config.json_output)
        if 'json-min' in self.report_types:
            json_min_dir = os.path.join(self.report_dir, 'coverage-min.json')
            logger.info(f'exporting json-min coverage report to {json_min_dir}')
            CoverageSummary.create(self.cov.config.json_output, json_min_dir)
Пример #4
0
 def test_with_no_cache(self, mocker, requests_mock):
     import builtins
     mock_min_cov_request = requests_mock.get(
         self.default_url, json=read_file(JSON_MIN_DATA_FILE))
     not_mocked_open = builtins.open
     open_file_mocker = mocker.patch('builtins.open')
     files_data = CoverageSummary(
         previous_coverage_report_url=TestCoverageSummary.
         TestGetFilesSummary.default_url,
         no_cache=True).get_files_summary()
     assert open_file_mocker.call_count == 0
     builtins.open = not_mocked_open
     assert len(mock_min_cov_request.request_history) == 1
     assert files_data == read_file(JSON_MIN_DATA_FILE)['files']
    def __init__(self, default_min_coverage: float = 70.0, allowed_coverage_degradation_percentage: float = 1.0,
                 coverage_file: Optional[str] = os.path.join('coverage_report', '.coverage'), no_cache: Optional[bool] = False,
                 report_dir: str = 'coverage_report', report_type: Optional[str] = None,
                 no_degradation_check: Optional[bool] = False,
                 previous_coverage_report_url: Optional[str] = 'https://storage.googleapis.com/marketplace-dist-dev/code-coverage-reports/coverage-min.json'):
        self.report_dir = report_dir
        self._cov: Optional[coverage.Coverage] = None
        self._report_str: Optional[str] = None
        self.degradation_check = not no_degradation_check
        self.coverage_file = coverage_file
        self.report_types = parse_report_type(report_type)

        if not self.degradation_check:
            return

        self.default = default_min_coverage
        self.epsilon = allowed_coverage_degradation_percentage

        cache_dir = str(os.path.join(self.report_dir, 'cache')) if not no_cache else None
        self._original_summary: Union[CoverageSummary, Dict[str, float]] = CoverageSummary(
            cache_dir=cache_dir,
            previous_coverage_report_url=previous_coverage_report_url,
            no_cache=no_cache
        )
Пример #6
0
 def test_creation(self, tmpdir):
     min_cov_path = tmpdir.join('coverage-min.json')
     CoverageSummary.create(
         os.path.join(TEST_DATA_DIR, 'coverage.json'), min_cov_path)
     assert read_file(JSON_MIN_DATA_FILE) == read_file(min_cov_path)