Ejemplo n.º 1
0
 def generateJenkinsChanges(self, pageDir):
     cacheDir = os.path.join(os.path.dirname(pageDir), "jenkins_changes")
     bgColour = self.colourFinder.find("changes_header_bg")
     row = [HTMLgen.TD("Changes", bgcolor=bgColour)]
     hasData = False
     prevTag = None
     for tag in self.tags:
         allChanges = self.findJenkinsChanges(prevTag, tag, cacheDir)
         cont = HTMLgen.Container()
         aborted = False
         for i, (authorOrMessage, target, bugs) in enumerate(allChanges):
             if i:
                 cont.append(HTMLgen.BR())
             if target:
                 cont.append(HTMLgen.Href(target, authorOrMessage))
             else:
                 cont.append(HTMLgen.Font(authorOrMessage, color="red"))
                 aborted = "Aborted" in authorOrMessage
             for bugText, bugTarget in bugs:
                 cont.append(HTMLgen.Href(bugTarget, bugText))
             hasData = True
         row.append(HTMLgen.TD(cont, bgcolor=bgColour))
         if not aborted:
             prevTag = tag
     if hasData:
         return HTMLgen.TR(*row)
Ejemplo n.º 2
0
 def generateTableHead(self, repositoryDirs):
     head = [HTMLgen.TH("Test")]
     ciUrl = os.getenv("JENKINS_URL") or os.getenv(
         "SYSTEM_TEAMFOUNDATIONSERVERURI")
     runNameDirs = self.getRunNameDirs(repositoryDirs) if ciUrl else []
     for tag in self.tags:
         tagColour = self.findTagColour(tag)
         linkTarget = getDetailPageName(self.pageVersion, tag)
         linkText = HTMLgen.Font(getDisplayText(tag), color=tagColour)
         buildNumber = self.getCiBuildNumber(tag)
         if ciUrl and buildNumber.isdigit():
             runEnv = getEnvironmentFromRunFiles(runNameDirs, tag)
             container = HTMLgen.Container()
             tooltip = jenkinschanges.getTimestamp(buildNumber)
             container.append(
                 HTMLgen.Href(linkTarget, linkText, title=tooltip))
             container.append(HTMLgen.BR())
             ciTitle, ciTarget = self.getCiLinkData(runEnv, buildNumber)
             ciText = HTMLgen.Emphasis(
                 HTMLgen.Font("(" + ciTitle + ")", size=1))
             container.append(HTMLgen.Href(ciTarget, ciText, title=tooltip))
             head.append(HTMLgen.TH(container))
         else:
             head.append(HTMLgen.TH(HTMLgen.Href(linkTarget, linkText)))
     heading = HTMLgen.TR()
     heading = heading + head
     return heading
Ejemplo n.º 3
0
 def generateTableHead(self, repositoryDirs):
     head = [HTMLgen.TH("Test")]
     jenkinsUrl = os.getenv("JENKINS_URL")
     runNameDirs = self.getRunNameDirs(repositoryDirs) if jenkinsUrl else []
     for tag in self.tags:
         tagColour = self.findTagColour(tag)
         linkTarget = getDetailPageName(self.pageVersion, tag)
         linkText = HTMLgen.Font(getDisplayText(tag), color=tagColour)
         buildNumber = self.getJenkinsBuildNumber(tag)
         if jenkinsUrl and buildNumber.isdigit():
             runEnv = getEnvironmentFromRunFiles(runNameDirs, tag)
             container = HTMLgen.Container()
             tooltip = jenkinschanges.getTimestamp(buildNumber)
             container.append(
                 HTMLgen.Href(linkTarget, linkText, title=tooltip))
             container.append(HTMLgen.BR())
             jobTarget = os.path.join(self.getRunEnv(runEnv,
                                                     "JENKINS_URL"), "job",
                                      self.getRunEnv(runEnv, "JOB_NAME"),
                                      buildNumber)
             jobText = HTMLgen.Emphasis(
                 HTMLgen.Font("(Jenkins " + buildNumber + ")", size=1))
             container.append(
                 HTMLgen.Href(jobTarget, jobText, title=tooltip))
             head.append(HTMLgen.TH(container))
         else:
             head.append(HTMLgen.TH(HTMLgen.Href(linkTarget, linkText)))
     heading = HTMLgen.TR()
     heading = heading + head
     return heading
Ejemplo n.º 4
0
    def generateTestRows(self, testName, extraVersion, results):
        bgColour = self.colourFinder.find("row_header_bg")
        testId = makeTestId(self.version, extraVersion, testName)
        description = self.descriptionInfo.get(testName, "")
        container = HTMLgen.Container(HTMLgen.Name(testId), testName)
        rows = []
        testRow = [
            HTMLgen.TD(container,
                       bgcolor=bgColour,
                       title=self.escapeForHtml(description))
        ]

        # Don't add empty rows to the table
        foundData = False
        bgcol = None
        for tag in self.tags:
            cellContent, bgcol, hasData = self.generateTestCell(
                tag, testName, testId, results)
            testRow.append(HTMLgen.TD(cellContent, bgcolor=bgcol))
            foundData |= hasData

        if foundData:
            # We only filter based on the final column
            self.usedColours.add(bgcol)
            rows.append(HTMLgen.TR(*testRow))
        else:
            return rows

        for resourceName in self.resourceNames:
            foundData = False
            resourceRow = [
                HTMLgen.TD(HTMLgen.Emphasis("(" + resourceName + ")"),
                           align="right")
            ]
            for tag in self.tags:
                cellContent, bgcol, hasData = self.generateTestCell(
                    tag, testName, testId, results, resourceName)
                resourceRow.append(
                    HTMLgen.TD(HTMLgen.Emphasis(cellContent),
                               bgcolor=bgcol,
                               align="right"))
                foundData |= hasData

            if foundData:
                rows.append(HTMLgen.TR(*resourceRow))
        return rows
Ejemplo n.º 5
0
 def generateExtraVersionHeader(self, extraVersion):
     bgColour = self.colourFinder.find("column_header_bg")
     extraVersionElement = HTMLgen.Container(HTMLgen.Name(extraVersion),
                                             extraVersion)
     columnHeader = HTMLgen.TH(extraVersionElement,
                               colspan=len(self.tags) + 1,
                               bgcolor=bgColour)
     return HTMLgen.TR(columnHeader)
Ejemplo n.º 6
0
 def generateSummaries(self, extraVersion=None):
     bgColour = self.colourFinder.find("column_header_bg")
     row = [HTMLgen.TD("Summary", bgcolor=bgColour)]
     for tag in self.tags:
         categoryHandler = self.categoryHandlers[tag]
         detailPageName = getDetailPageName(self.pageVersion, tag)
         summary = categoryHandler.generateHTMLSummary(
             detailPageName + "#" + self.version, extraVersion)
         row.append(HTMLgen.TD(summary, bgcolor=bgColour))
     return HTMLgen.TR(*row)
Ejemplo n.º 7
0
    def addTable(self, page, resourceNames, categoryHandlers, version,
                 loggedTests, selector, tableHeader, filePath, graphHeading,
                 repositoryDirs):
        graphDirname, graphFileRef = self.getGraphFileParts(filePath, version)
        testTable = self.getTestTable(self.getConfigValue, resourceNames,
                                      self.descriptionInfo,
                                      selector.selectedTags, categoryHandlers,
                                      self.pageVersion, version,
                                      os.path.join(graphDirname, graphFileRef))
        table = testTable.generate(loggedTests, self.pageDir, repositoryDirs)
        if table:
            cells = []
            if tableHeader:
                page.append(HTMLgen.HR())
                cells.append(self.makeTableHeaderCell(tableHeader))

            graphLink = None
            fullPath = os.path.abspath(os.path.join(graphDirname,
                                                    graphFileRef))
            if testTable.generateGraph(fullPath, graphHeading):
                graphLink = self.makeImageLink(graphFileRef.replace("\\", "/"))
                cells.append(HTMLgen.TD(graphLink))

            if len(cells):
                row = HTMLgen.TR(*cells)
                initialTable = HTMLgen.TableLite(align="center")
                initialTable.append(row)
                page.append(initialTable)

            extraVersions = list(loggedTests.keys())[1:]
            if len(extraVersions) > 0:
                page.append(testTable.generateExtraVersionLinks(extraVersions))

            page.append(table)
            return True, graphLink, testTable.usedColours
        else:
            return False, None, []