Ejemplo n.º 1
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 test_url_without_sonar_id(self):
     """ Test that the metric has a url when the product has no Sonar id configured. """
     with patch.object(metric_source.Sonar,
                       'version_number') as mock_version_number:
         mock_version_number.return_value = '6.3'
         sonar = metric_source.Sonar('http://sonar/')
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     product = domain.Product()
     self.assertEqual(dict(), SonarMetric(product, project).url())
 def test_url(self):
     """ Test the url. """
     with patch.object(metric_source.Sonar,
                       'version_number') as mock_version_number:
         mock_version_number.return_value = '6.3'
         sonar = metric_source.Sonar('http://sonar/')
     project = domain.Project(metric_sources={metric_source.Sonar: sonar})
     product = domain.Product(metric_source_ids={sonar: 'sonar id'})
     self.assertEqual({sonar.metric_source_name: sonar.url()},
                      SonarMetric(product, project).url())
Ejemplo n.º 4
0
 def setUp(self):
     with patch.object(metric_source.Sonar, 'version_number') as mock_version_number:
         mock_version_number.return_value = '6.3'
         self.__sonar = metric_source.Sonar('unimportant')
     project = domain.Project(
         metric_sources={metric_source.Sonar: self.__sonar, metric_source.History: metric_source.CompactHistory('')},
         metric_options={metric.TotalLOC: dict(target=1000000, low_target=2000000)},
         metric_source_ids={self.__sonar: 'dummy'})
     product1 = domain.Product(short_name='PR1', name='FakeSubject1', metric_source_ids={self.__sonar: 'sonar id1'})
     product2 = domain.Product(short_name='PR2', name='FakeSubject2', metric_source_ids={self.__sonar: 'sonar id2'})
     product_without_sonar_id = domain.Product(short_name='PW', name='ProductWithoutSonarId')
     test_product = domain.Product(short_name='TP', is_main=False, metric_source_ids={self.__sonar: 'sonar id'})
     project.add_product(product1)
     project.add_product(product2)
     # Add products that should be ignored:
     project.add_product(product_without_sonar_id)
     project.add_product(test_product)
     self.__metric = metric.TotalLOC(subject=project, project=project)
Ejemplo n.º 5
0
""" Project definition for testing a project with all requirements and sources, but no source ids. """

from hqlib import metric_source, requirement
from hqlib.domain import Project, Product, Application, Component, Team, Document, Environment, Process

# Sources
HISTORY = metric_source.History('tests/integrationtests/test_no_source_ids/history.json')
GIT = metric_source.Git(url='http://git/repo')
SONAR = metric_source.Sonar('http://sonar/')
BUG_TRACKER = metric_source.JiraFilter(url='http://jira/', username='******', password='******')
WEKAN = metric_source.WekanBoard('http://wekan', username='******', password='******')

# The project
PROJECT = Project(
    'Integrationtest', name='all requirements and sources, but no source ids',
    metric_sources={
        metric_source.History: HISTORY,
        metric_source.VersionControlSystem: GIT,
        metric_source.BugTracker: BUG_TRACKER,
        metric_source.ActionLog: WEKAN,
        metric_source.UnitTestReport: SONAR,
        metric_source.Sonar: SONAR},
    added_requirements=Project.optional_requirements())

# Documents.
DOC = Document(name='Document XYZ', added_requirements=Document.optional_requirements())
PROJECT.add_document(DOC)

# Teams of the project.
TEAM = Team(name='Team 123', short_name='TE', added_requirements=Team.optional_requirements())
PROJECT.add_team(TEAM)
Ejemplo n.º 6
0
import pathlib
import datetime

from hqlib import metric_source, metric, requirement
from hqlib.domain import Project, Environment, Application, Team, Document, TechnicalDebtTarget, \
    DynamicTechnicalDebtTarget

PROJECT_DIR = pathlib.Path(__file__).parent.parent.parent.parent

BUILD_SERVER = metric_source.Jenkins('http://jenkins/',
                                     username='******',
                                     password='******',
                                     job_re='-metrics')
JENKINS = metric_source.Jenkins(url='http://www.jenkins.proj.org:8080/')
SONAR = metric_source.Sonar('https://my.sonarqube.com/')
JUNIT = metric_source.JunitTestReport()
HISTORY = metric_source.CompactHistory(PROJECT_DIR / 'docs' / 'examples' /
                                       'quality_report' / 'history.json')
JACOCO = metric_source.JaCoCo()
ZAP_SCAN_REPORT = metric_source.ZAPScanReport()
SECURITY_REPORT_PROXY = metric_source.FileWithDate()

USER_STORIES_IN_PROGRESS_TRACKER = \
    metric_source.JiraFilter('https://jira.myorg.nl/jira', username="******", password="******")

USER_STORIES_DURATION_TRACKER =  \
    metric_source.JiraFilter('https://jira.myorg.nl/jira', username="******", password="******")

DURATION_MANUAL_TEST_CASES =  \
    metric_source.JiraFilter('https://jira.myorg.nl/jira', username="******", password="******", field_name="customfield_11700")
from hqlib import metric_source
from hqlib.domain import Project, Application

# Metric sources
HISTORY = metric_source.CompactHistory("history.json")
SONAR = metric_source.Sonar("https://sonarcloud.io/")

# The project
PROJECT = Project("ICTU",
                  name="HQ",
                  metric_sources={
                      metric_source.History: HISTORY,
                      metric_source.Sonar: SONAR
                  })

# The product developed by the project
APPLICATION = Application(short_name="HQ",
                          name="HQ - Holistic Software Quality Reporting",
                          metric_source_ids={SONAR: 'nl.ictu:hq'})

PROJECT.add_product(APPLICATION)

# Dashboard layout
# Columns in the dashboard is specified as a list of tuples. Each tuple
# contains a column header and the column span.
DASHBOARD_COLUMNS = [("Product", 1), ("Meta", 1)]

# Rows in the dashboard is a list of row tuples. Each row tuple consists of
# tuples that describe a cell in the dashboard. Each cell is a tuple containing
# the product or team and the color. Optionally the cell tuple can contain a
# third value which is a tuple containing the column and row span for the cell.