def test_delegate(self): opt = QStyleOptionViewItem() index = self.model.index(0, 0) self.delegate.initStyleOption(opt, index) self.assertEqual(opt.text, "0x0") icon = QIcon(SvgIconEngine(b'<svg></svg>')) yellow = QColor(Qt.yellow) magenta = QColor(Qt.magenta) data = { Qt.DisplayRole: "AA", Qt.FontRole: QFont("Times New Roman"), Qt.TextAlignmentRole: Qt.AlignRight, Qt.CheckStateRole: Qt.Checked, Qt.DecorationRole: icon, Qt.ForegroundRole: yellow, Qt.BackgroundRole: magenta, } self.model.setItemData(index, data) self.delegate.initStyleOption(opt, index) self.assertEqual(opt.font.family(), QFont("Times New Roman").family()) self.assertEqual(opt.displayAlignment, Qt.AlignRight) self.assertEqual(opt.backgroundBrush.color(), magenta) self.assertEqual(opt.palette.text().color(), yellow) self.assertFalse(opt.icon.isNull()) self.assertEqual(opt.icon.cacheKey(), icon.cacheKey()) res = self.delegate.cachedData(index, Qt.DisplayRole) self.assertEqual(res, "AA") res = self.delegate.cachedItemData( index, (Qt.DisplayRole, Qt.TextAlignmentRole)) self.assertIn(Qt.DisplayRole, res) self.assertIn(Qt.TextAlignmentRole, res) self.assertEqual(res[Qt.TextAlignmentRole], Qt.AlignRight) self.assertEqual(res[Qt.DisplayRole], "AA")