def test_report_without_jira(self):
     """ Test the metric report when no Jira filter has been configured. """
     self.assertEqual(
         'De uitvoeringstijd van handmatige logische testgevallen van <no name> kon niet gemeten '
         'worden omdat de bron ManualLogicalTestCaseTracker niet is geconfigureerd.',
         metric.DurationOfManualLogicalTestCases(domain.Project(),
                                                 domain.Project()).report())
 def test_report_without_jira(self):
     """ Test the metric report when no Jira filter has been configured. """
     self.assertEqual(
         'De hoeveelheid logische testgevallen zonder ingevulde uitvoeringstijd van <no name> kon niet '
         'gemeten worden omdat de bron ManualLogicalTestCaseTracker niet is geconfigureerd.',
         metric.ManualLogicalTestCasesWithoutDuration(
             domain.Project(), domain.Project()).report())
Esempio n. 3
0
 def test_direct_action_needed_when_metrics_are_missing(self):
     """ Test that the report needs direct action when the report has missing metrics. """
     project = domain.Project('organization', name='project title',
                              added_requirements={requirement.TrustedProductMaintainability})
     quality_report = report.QualityReport(project)
     quality_report.sections()  # Generate the report
     self.assertTrue(quality_report.direct_action_needed())
 def test_missing_metric_source_id_status(self):
     """ Test that the status is missing metric sources when the subject doesn't have the required metric source
         id. """
     project = domain.Project(metric_sources={metric_source.SystemTestReport: metric_source.JunitTestReport()})
     metric = MetricUnderTest(self.__subject, project=project)
     metric.metric_source_class = metric_source.SystemTestReport
     self.assert_status('missing_source', metric)
 def setUp(self):
     birt = FakeBirt()
     self.__subject = FakeSubject()
     self.__project = domain.Project(
         metric_sources={metric_source.Birt: birt})
     self.__metric = metric.UserStoriesNotApproved(subject=self.__subject,
                                                   project=self.__project)
 def setUp(self):
     sonar = FakeSonar()
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     product = domain.Product(short_name='PR',
                              name='FakeSubject',
                              metric_source_ids={sonar: 'sonar id'})
     self._metric = metric.JavaDuplication(subject=product, project=project)
Esempio n. 7
0
 def test_vcs_id(self):
     """ Test that the VCS id can be retrieved. """
     vcs = 'VCS'
     project = domain.Project('organization', metric_sources={metric_source.VersionControlSystem: vcs})
     product = domain.Product(metric_source_ids={vcs: 'vcs_id'})
     quality_report = report.QualityReport(project)
     self.assertEqual(('VCS', 'vcs_id'), quality_report.vcs_id(product))
Esempio n. 8
0
 def setUp(self):
     with patch.object(metric_source.Sonar, 'version_number') as mock_version_number:
         mock_version_number.return_value = '6.3'
         sonar = metric_source.Sonar('unimportant')
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     subject = domain.Product(short_name='PR', name='FakeSubject', metric_source_ids={sonar: 'sonar id'})
     self._metric = metric.ProductLOC(subject=subject, project=project)
 def setUp(self):  # pylint: disable=invalid-name
     """ Set up the fixture for the unit tests. """
     self.__report = FakeUnitTestReport()
     project = domain.Project(
         metric_sources={metric_source.UnitTestReport: self.__report})
     self.__metric = metric.FailingUnittests(subject=FakeSubject(),
                                             project=project)
 def setUp(self):
     self.__birt = FakeBirt()
     self.__subject = FakeSubject()
     self.__project = domain.Project(
         metric_sources={metric_source.Birt: self.__birt})
     self.__metric = metric.NumberOfManualLogicalTestCases(
         subject=self.__subject, project=self.__project)
 def test_included_metric_source_classes(self):
     """ Test that the report gives a list of included metric source classes, based on the project's metric
         source classes. """
     project = domain.Project()
     self.assertEqual(
         project.metric_source_classes(),
         report.QualityReport(project).included_metric_source_classes())
    def test_extra_info(self):
        """ Test that correct extra info is returned."""
        subversion = MagicMock()
        subversion.unmerged_branches.return_value = [
            metric_source.Branch("some_branch", 22,
                                 datetime.datetime(2018, 1, 1))
        ]
        subversion.branch_folder_for_branch.return_value = "http://some_branch"

        project = domain.Project(
            metric_sources={metric_source.VersionControlSystem: subversion})
        subject = domain.Product(metric_source_ids={subversion: '_'})

        expected_result = domain.ExtraInfo(
            link="Branch",
            comment="Aantal ongemergde revisies__detail-column-number",
            date_last_change="Datum laatste wijziging__detail-column-number")
        expected_result.data = \
            [{"link": {"href": "http://some_branch", "text": "some_branch"}, "comment": 22,
              "date_last_change": "01-01-2018"}]
        obj = metric.UnmergedBranches(project=project, subject=subject)

        result = obj.extra_info()

        self.assertDictEqual(expected_result.headers, result.headers)
        self.assertEqual(expected_result.data, result.data)
        self.assertEqual('Niet gemergde branches', result.title)
Esempio n. 13
0
 def test_is_perfect(self):
     """ Test that the metric is perfect when the number of violations is zero. """
     sonar = FakeSonar()
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     product = domain.Product(metric_source_ids={sonar: "sonar id"})
     violations = self.metric_class(subject=product, project=project)
     self.assertEqual('perfect', violations.status())
Esempio n. 14
0
 def test_vcs_id_when_no_metric_source_id(self):
     """ Test that the empty VCS id is retrieved when there is no metric source id """
     vcs = 'VCS'
     project = domain.Project('organization', metric_sources={metric_source.VersionControlSystem: vcs})
     product = domain.Product(metric_source_ids={})
     quality_report = report.QualityReport(project)
     self.assertEqual((None, ''), quality_report.vcs_id(product))
Esempio n. 15
0
 def test_vcs_id_when_product_is_none(self):
     """ Test that the empty VCS id is retrieved for None product. """
     vcs = 'VCS'
     project = domain.Project('organization', metric_sources={metric_source.VersionControlSystem: vcs})
     product = None
     quality_report = report.QualityReport(project)
     self.assertEqual((None, ''), quality_report.vcs_id(product))
Esempio n. 16
0
 def setUp(self):
     board = FakeBoard()
     self.__project = domain.Project(
         metric_sources={metric_source.ActionLog: board},
         metric_source_ids={board: 'board_id'})
     self.__metric = metric.OverDueActions(project=self.__project,
                                           subject=self.__project)
 def setUp(self):
     jira = FakeJiraFilter()
     self.__project = domain.Project(
         metric_sources={metric_source.ManualLogicalTestCaseTracker: jira},
         metric_source_ids={jira: '12345'})
     self.__metric = metric.ManualLogicalTestCasesWithoutDuration(
         subject=self.__project, project=self.__project)
Esempio n. 18
0
 def setUp(self):
     self.__board = FakeBoard()
     self.__project = domain.Project(
         metric_sources={metric_source.RiskLog: self.__board},
         metric_source_ids={self.__board: 'board_id'})
     self.__metric = metric.RiskLog(project=self.__project,
                                    subject=self.__project)
 def setUp(self):
     self.__birt = FakeBirt()
     self.__subject = FakeSubject()
     self.__project = domain.Project(
         metric_sources={metric_source.Birt: self.__birt})
     self.__metric = metric.LogicalTestCasesNotAutomated(
         subject=self.__subject, project=self.__project)
Esempio n. 20
0
 def setUp(self):
     self.__wiki = FakeWiki()
     self.__team = domain.Team(metric_source_ids={self.__wiki: 'team'})
     self.__project = domain.Project(
         metric_sources={metric_source.TeamSpirit: self.__wiki})
     self.__metric = metric.TeamSpirit(subject=self.__team,
                                       project=self.__project)
Esempio n. 21
0
 def test_sonar_id_empty(self):
     """ Test that the Sonar id of a product can be retrieved. """
     sonar = 'Sonar'
     project = domain.Project('organization', metric_sources={metric_source.Sonar: sonar})
     product = domain.Product(metric_source_ids={sonar: ''})
     quality_report = report.QualityReport(project)
     self.assertEqual((None, ''), quality_report.sonar_id(product))
 def test_report_without_metric_source(self):
     """ Test the report without a metric source. """
     self.assertEqual(
         'De hoeveelheid ongemergde branches van <no name> kon niet gemeten worden omdat de bron '
         'VersionControlSystem niet is geconfigureerd.',
         metric.UnmergedBranches(subject=domain.Product(),
                                 project=domain.Project()).report())
 def setUp(self):
     self.__birt = FakeBirt()
     self.__subject = FakeSubject()
     self.__project = domain.Project(
         metric_sources={metric_source.Birt: self.__birt})
     self.__metric = metric.UserStoriesWithTooFewLogicalTestCases(
         subject=self.__subject, project=self.__project)
 def test_value_with_multiple_sources(self):
     """ Test that the value is '0.0' when multiple metric source have been configured, but not metric source id. """
     sonar1, sonar2 = FakeSonar(), FakeSonar()
     version = metric.SonarPluginVersionJava(
         project=domain.Project(metric_sources={metric_source.Sonar: [sonar1, sonar2]}),
         subject=domain.Environment())
     self.assertEqual(LooseVersion('0.0'), version.value())
 def setUp(self):
     sonar = FakeSonar()
     subject = domain.Product(short_name='PR',
                              name='FakeSubject',
                              metric_source_ids={sonar: "sonar id"})
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     self._metric = metric.NoSonar(subject=subject, project=project)
Esempio n. 26
0
 def test_norm(self):
     """ Test the metric norm. """
     self.assertEqual(
         "Maximaal 20% van de metrieken heeft geaccepteerde technische schuld (is grijs). "
         "Als meer dan 30% van de metrieken geaccepteerde technische schuld heeft "
         "is deze metriek rood.",
         metric.GreyMetaMetric([], project=domain.Project()).norm())
    def test_extra_info_rows(self):
        """ Test that the extra info contains the different types of suppressions. """
        self._sonar.false_positives_url.return_value = "url_false_positives"
        self._sonar.wont_fix_url.return_value = "url_wont_fix"
        self._sonar.suppressions_url.return_value = "url_no_sonar"
        self._sonar.false_positives.return_value = 1
        self._sonar.wont_fix.return_value = 3
        self._sonar.suppressions.return_value = 5
        project = domain.Project(
            metric_sources={metric_source.Sonar: self._sonar})
        violation_metric = metric.ViolationSuppressions(subject=self.__subject,
                                                        project=project)
        result = violation_metric.extra_info_rows()

        self.assertEqual([
            ({
                'href': 'url_false_positives',
                'text': "Gemarkeerd als false positive in SonarQube"
            }, 1),
            ({
                'href': 'url_wont_fix',
                'text': "Gemarkeerd als won't fix in SonarQube"
            }, 3),
            ({
                'href':
                'url_no_sonar',
                'text':
                "Gemarkeerd in de broncode met annotatie, commentaar (bijv. //NOSONAR) of pragma"
            }, 5)
        ], result)
    def test_value_no_metric_source(self):
        """ Test the value of number of alerts when there is no metric source. """
        metric_source_object = None
        project = domain.Project()
        project.metric_sources = MagicMock(return_value=[metric_source_object])
        metric = AccessibilityMetric(subject=MagicMock(), project=project)

        self.assertEqual(-1, metric.value())
    def test_extra_info_rows_without_metric_source(self):
        """ Test there are no rows without metric source. """
        project = domain.Project()
        violation_metric = metric.ViolationSuppressions(subject=self.__subject,
                                                        project=project)
        result = violation_metric.extra_info_rows()

        self.assertEqual([], result)
 def test_is_applicable(self):
     """ Test that the metric is applicable if the metric source can deliver the required information. """
     self.assertFalse(self.__metric.is_applicable())
     report = self.metric_source_class(report_url="http://report")
     project = domain.Project(
         metric_sources={self.metric_class.metric_source_class: report})
     performance_metric = self.metric_class(self.__subject, project)
     self.assertTrue(performance_metric.is_applicable())