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)
def addVersionSection(self, version, categoryHandler, linkFromDetailsToOverview): self.totalCategoryHandler.update(categoryHandler) container = HTMLgen.Container() container.append(HTMLgen.HR()) container.append(self.getSummaryHeading(version, categoryHandler)) for desc, testInfo in categoryHandler.getTestsWithDescriptions(): fullDescription = self.getFullDescription( testInfo, version, linkFromDetailsToOverview) if fullDescription: container.append(HTMLgen.Name(version + desc)) container.append( HTMLgen.Heading( 3, "Detailed information for the tests that " + desc + ":")) container.append(fullDescription) self.versionSections.append(container)
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
def getFullDescription(self, tests, version, linkFromDetailsToOverview): freeTextData = self.getFreeTextData(tests) if len(freeTextData) == 0: return fullText = HTMLgen.Container() for freeText, tests in freeTextData: tests.sort(key=lambda info: info[0]) for testName, _, extraVersion in tests: fullText.append( HTMLgen.Name(makeTestId(version, extraVersion, testName))) fullText.append( self.getHeaderLine(tests, version, linkFromDetailsToOverview)) self.appendFreeText(fullText, freeText) if len(tests) > 1: for line in self.getTestLines(tests, version, linkFromDetailsToOverview): fullText.append(line) return fullText
def makeTableHeaderCell(self, tableHeader): container = HTMLgen.Container() container.append(HTMLgen.Name(tableHeader)) container.append( HTMLgen.U(HTMLgen.Heading(1, tableHeader, align='center'))) return HTMLgen.TD(container)