예제 #1
0
def test_exclude_coverage(coverage_mode, tester, config):
    tester.useSafeMath(5, 10)

    coverage_eval = coverage.get_merged_coverage_eval()
    report = _build_coverage_output(coverage_eval)
    assert _build_coverage_output(coverage_eval) == report

    config.settings["reports"]["exclude_contracts"] = "SafeMath"
    assert _build_coverage_output(coverage_eval) != report
예제 #2
0
def test_exclude_coverage_by_glob(coverage_mode, tester, vypertester, config):
    tester.useSafeMath(5, 10)
    vypertester.overflow(1, 2)

    coverage_eval = coverage.get_merged_coverage_eval()
    report = _build_coverage_output(coverage_eval)
    assert _build_coverage_output(coverage_eval) == report

    config.settings["reports"]["exclude_paths"] = "contracts/*.vy"
    assert _build_coverage_output(coverage_eval) != report
예제 #3
0
    def pytest_terminal_summary(self, terminalreporter):
        """
        Add a section to terminal summary reporting.

        * When the `--disable-warnings` flag is active, removes all raised warnings
          prior to outputting the final console report.

        * When `--coverage` is active, outputs the result to stdout and saves the
          final report json.

        Arguments
        ---------
        terminalreporter : `_pytest.terminal.TerminalReporter`
            The internal terminal reporter object
        """
        if self.config.getoption(
                "--disable-warnings") and "warnings" in terminalreporter.stats:
            del terminalreporter.stats["warnings"]

        if CONFIG.argv["coverage"]:
            terminalreporter.section("Coverage")

            # output coverage report to console
            coverage_eval = coverage.get_merged_coverage_eval()
            for line in output._build_coverage_output(coverage_eval):
                terminalreporter.write_line(line)

            # save coverage report as `reports/coverage.json`
            output._save_coverage_report(
                self.project._build,
                coverage_eval,
                self.project_path.joinpath(self.project._structure["reports"]),
            )