Пример #1
0
class TestPotentialHits:
    # noinspection PyAttributeOutsideInit
    def setup(self):
        self.detector = StubDetector()
        self.misuses = []
        self.uut = PotentialHits(self.misuses)

    def test_no_hit(self):
        self.misuses.append(create_misuse("-m1-"))
        finding = Finding({"rank": "no potential hit"})
        finding.is_potential_hit = lambda misuse, y: False

        potential_hits = self.uut.get_potential_hits([finding])

        assert_equals([], potential_hits)

    def test_potential_hit(self):
        self.misuses.append(create_misuse("-m1-"))
        finding = Finding({"rank": ":potential hit for m1:"})
        finding.is_potential_hit = lambda misuse, y: misuse == self.misuses[0]

        potential_hits = self.uut.get_potential_hits([finding])

        assert_equals(self.misuses[0].id, potential_hits[0]["misuse"])

    def test_potential_hit_for_second_misuse(self):
        self.misuses.extend([create_misuse("-1st-"), create_misuse("-2nd-")])
        finding = Finding({"rank": ":some potential hit for second misuse:"})
        finding.is_potential_hit = lambda misuse, y: misuse == self.misuses[1]

        potential_hits = self.uut.get_potential_hits([finding])

        assert_equals(self.misuses[1].id, potential_hits[0]["misuse"])
Пример #2
0
    def get_run(self, version: ProjectVersion) -> Run:
        if self.id == Experiment.PROVIDED_PATTERNS:
            executions = [
                DetectOnlyExecution(self.detector, version, misuse, self.findings_base_path,
                                    PotentialHits(self.detector, [misuse])) for
                misuse in version.misuses if misuse.patterns]
        elif self.id == Experiment.TOP_FINDINGS:
            executions = [
                MineAndDetectExecution(self.detector, version, self.findings_base_path,
                                       AllFindings(self.detector, self.limit))]
        elif self.id == Experiment.BENCHMARK:
            executions = [MineAndDetectExecution(self.detector, version, self.findings_base_path,
                                                 PotentialHits(self.detector, version.misuses))]
        else:
            executions = []

        return Run(executions)
Пример #3
0
    def setup(self):
        self.misuse = create_misuse('-misuse-', meta={"location": {"file": "a", "method": "m()"}})
        self.version = create_version("-version-", misuses=[self.misuse], project=create_project("-project-"))
        self.detector = StubDetector()
        self.findings_base_path = "-findings-"

        self.logger = logging.getLogger("test")

        self.uut = DetectOnlyExecution(self.detector, self.version, self.misuse, self.findings_base_path,
                                       PotentialHits(self.misuse))
Пример #4
0
 def setup(self):
     self.detector = StubDetector()
     self.misuses = []
     self.uut = PotentialHits(self.misuses)
Пример #5
0
 def get_run(self, version: ProjectVersion):
     findings_filter = PotentialHits(version.misuses)
     return Run([
         MineAndDetectExecution(self.detector, version,
                                self.findings_base_path, findings_filter)
     ])
Пример #6
0
 def __create_execution(self, version, misuse):
     findings_filter = PotentialHits([misuse])
     return DetectOnlyExecution(self.detector, version, misuse,
                                self.findings_base_path, findings_filter)