def _convertTime(dt): ''' Coverts the given time to the text representation. ''' if isinstance(dt, (float, int, long)): return utils.localTime(dt)[1] return utils.timeToString(dt).split(utils.DATE_TIME_SEPARATOR)[1]
def _convertDate(dt): ''' Coverts the given date to the text representation. ''' if isinstance(dt, (float, int, long)): return utils.DATE_TIME_SEPARATOR.join(utils.localTime(dt)) return utils.timeToString(dt)
def _deviceElement(self, device, result): ''' Gets a tree element corresponding the given device execution result. ''' devices = self._resultElement(result).find("devices") for element in list(devices): if element.findtext("name") == device.name: return element element = _subElement(devices, "device") _subElement(element, "name", device.name) if self.isVerbose(): _subElement(element, "date", utils.timeToString(device.date)) _subElement(element, "address", device.address) _subElement(element, "port", device.port) _subElement(element, "description", device.description) return element
def showDetails(self, result): ''' Displays details of the given test result. ''' tree = self._treeWidget def makeItem(parent, name, value="", color=None, font=None, expand=True, span=False): item = QtGui.QTreeWidgetItem(parent) nLabel = QtGui.QLabel(tree) nLabel.setText(utils.decode(name)) item.setSizeHint(0, nLabel.sizeHint() + QtCore.QSize(10, 0)) tree.setItemWidget(item, 0, nLabel) if font is not None: nLabel.setFont(font) if span: item.setFirstColumnSpanned(True) else: vLabel = QtGui.QLabel(tree) vLabel.setMinimumWidth(self._treeWidget.sizeHint().width() - self._treeWidget.columnWidth(0) - 1) tree.setItemWidget(item, 1, vLabel) if color: vLabel.setText(u"<font color=\"%s\">%s</font>" % (color.color().name(), utils.decode(value))) else: vLabel.setText(utils.decode(value)) vLabel.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) item.setSizeHint( 1, QtCore.QSize(vLabel.sizeHint().width() + 10, vLabel.sizeHint().height())) if expand: item.setExpanded(True) return item self.clearDetails() log.debug("Displaying selected tree item for result '%s'" % result.id) makeItem(tree, "Id", result.id) makeItem(tree, "Path", result.path) makeItem(tree, "Status", result.status, color=STATUS_COLORS[result.status], font=STATUS_FONTS[result.status]) if result.attrs: item = makeItem(tree, "Attributes") for name, value in result.attrs.iteritems(): makeItem(item, name, value) if isinstance(result, TestStepResult): makeItem(tree, "Function", result.func) if result.args: item = makeItem(tree, "Arguments") for name, value in result.args.iteritems(): makeItem(item, name, value) if result.devices: item = makeItem(tree, "Devices") for devResult in result.devices: devItem = makeItem(item, devResult.name, span=True) if devResult.description is not None: makeItem(devItem, "Description", devResult.description) if devResult.address is not None: makeItem(devItem, "Address", devResult.address) if devResult.port is not None: makeItem(devItem, "Port", devResult.port) if devResult.status is not None: makeItem(devItem, "Status", devResult.status, color=STATUS_COLORS[devResult.status], font=STATUS_FONTS[devResult.status]) if devResult.errors: errItem = makeItem(devItem, "Errors") for error in devResult.errors: makeItem(errItem, "", error) if devResult.cores: coresItem = makeItem(devItem, "Cores") for core in devResult.cores: coreItem = makeItem(coresItem, core.path, expand=False, span=True) makeItem(coreItem, "Size", "%s" % utils.sizeToString(core.size)) makeItem(coreItem, "Date", " ".join(utils.localTime(core.mtime))) if devResult.date: makeItem(devItem, "Date", utils.timeToString(devResult.date)) if devResult.time: makeItem(devItem, "Time", "%.6fs" % devResult.time) self._treeWidget.resizeColumnToContents(0) self._treeWidget.resizeColumnToContents(1)
def deviceDateTime(device, runTime=False): dt = device.date if runTime: dt += datetime.timedelta(seconds=device.time) return utils.timeToString(dt)
def testSanity(self): dateTimeStr = "2011-12-21 16:45:08" self.assertEqual(dateTimeStr, timeToString(timeFromString(dateTimeStr)))
def testtimeToStringWithNone(self): self.assertEqual("", timeToString(None))
def testtimeToStringNoTime(self): date0 = datetime.datetime.now().date() self.assertEqual( date0.strftime(DATE_TIME_SEPARATOR.join( (DATE_FORMAT, TIME_FORMAT))), timeToString(date0))
def testtimeToStringNoTime(self): date0 = datetime.datetime.now().date() self.assertEqual(date0.strftime(DATE_TIME_SEPARATOR.join( (DATE_FORMAT, TIME_FORMAT))), timeToString(date0))
def showDetails(self, result): ''' Displays details of the given test result. ''' tree = self._treeWidget def makeItem(parent, name, value="", color=None, font=None, expand=True, span=False): item = QtGui.QTreeWidgetItem(parent) nLabel = QtGui.QLabel(tree) nLabel.setText(utils.decode(name)) item.setSizeHint(0, nLabel.sizeHint() + QtCore.QSize(10, 0)) tree.setItemWidget(item, 0, nLabel) if font is not None: nLabel.setFont(font) if span: item.setFirstColumnSpanned(True) else: vLabel = QtGui.QLabel(tree) vLabel.setMinimumWidth(self._treeWidget.sizeHint().width() - self._treeWidget.columnWidth(0) - 1) tree.setItemWidget(item, 1, vLabel) if color: vLabel.setText(u"<font color=\"%s\">%s</font>" % (color.color().name(), utils.decode(value))) else: vLabel.setText(utils.decode(value)) vLabel.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) item.setSizeHint(1, QtCore.QSize(vLabel.sizeHint().width() + 10, vLabel.sizeHint().height())) if expand: item.setExpanded(True) return item self.clearDetails() log.debug("Displaying selected tree item for result '%s'" % result.id) makeItem(tree, "Id", result.id) makeItem(tree, "Path", result.path) makeItem(tree, "Status", result.status, color=STATUS_COLORS[result.status], font=STATUS_FONTS[result.status]) if result.attrs: item = makeItem(tree, "Attributes") for name, value in result.attrs.iteritems(): makeItem(item, name, value) if isinstance(result, TestStepResult): makeItem(tree, "Function", result.func) if result.args: item = makeItem(tree, "Arguments") for name, value in result.args.iteritems(): makeItem(item, name, value) if result.devices: item = makeItem(tree, "Devices") for devResult in result.devices: devItem = makeItem(item, devResult.name, span=True) if devResult.description is not None: makeItem(devItem, "Description", devResult.description) if devResult.address is not None: makeItem(devItem, "Address", devResult.address) if devResult.port is not None: makeItem(devItem, "Port", devResult.port) if devResult.status is not None: makeItem(devItem, "Status", devResult.status, color=STATUS_COLORS[devResult.status], font=STATUS_FONTS[devResult.status]) if devResult.errors: errItem = makeItem(devItem, "Errors") for error in devResult.errors: makeItem(errItem, "", error) if devResult.cores: coresItem = makeItem(devItem, "Cores") for core in devResult.cores: coreItem = makeItem(coresItem, core.path, expand=False, span=True) makeItem(coreItem, "Size", "%s" % utils.sizeToString(core.size)) makeItem(coreItem, "Date", " ".join(utils.localTime(core.mtime))) if devResult.date: makeItem(devItem, "Date", utils.timeToString(devResult.date)) if devResult.time: makeItem(devItem, "Time", "%.6fs" % devResult.time) self._treeWidget.resizeColumnToContents(0) self._treeWidget.resizeColumnToContents(1)