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())
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)
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))
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)
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())
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))
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))
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)
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)
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)
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)
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())