From cd67c66c5c073fda9df32080794791606154321b Mon Sep 17 00:00:00 2001 From: Ales Erjavec Date: Thu, 17 Aug 2023 14:43:33 +0200 Subject: [PATCH] owpredictions: Fix a type error in report when using NoopDelegate --- Orange/widgets/evaluate/owpredictions.py | 10 ++++++---- Orange/widgets/evaluate/tests/test_owpredictions.py | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Orange/widgets/evaluate/owpredictions.py b/Orange/widgets/evaluate/owpredictions.py index b9b5ec36e74..69797905a62 100644 --- a/Orange/widgets/evaluate/owpredictions.py +++ b/Orange/widgets/evaluate/owpredictions.py @@ -9,7 +9,7 @@ import numpy from AnyQt.QtWidgets import ( QTableView, QSplitter, QToolTip, QStyle, QApplication, QSizePolicy, - QPushButton, QAbstractItemDelegate) + QPushButton, QStyledItemDelegate) from AnyQt.QtGui import QPainter, QStandardItem, QPen, QColor, QBrush from AnyQt.QtCore import ( Qt, QSize, QRect, QRectF, QPoint, QPointF, QLocale, @@ -1117,14 +1117,16 @@ def sizeHint(cls, option, index): return cls.__size_hint -class NoopItemDelegate(QAbstractItemDelegate): +class NoopItemDelegate(QStyledItemDelegate): def paint(self, *_): pass - @staticmethod - def sizeHint(*_): + def sizeHint(self, *_): return QSize(0, 0) + def displayText(self, *_): + return "" + class ClassificationErrorDelegate(ErrorDelegate): def displayText(self, value, _): diff --git a/Orange/widgets/evaluate/tests/test_owpredictions.py b/Orange/widgets/evaluate/tests/test_owpredictions.py index fcb5ecfef9c..a6ab9b15dbd 100644 --- a/Orange/widgets/evaluate/tests/test_owpredictions.py +++ b/Orange/widgets/evaluate/tests/test_owpredictions.py @@ -152,6 +152,14 @@ def test_no_class_on_test(self): predmodel.data(predmodel.index(0, 0), Qt.UserRole))) self.assertIn(predmodel.data(predmodel.index(0, 0))[0], titanic.domain.class_var.values) + self.widget.send_report() + + housing = self.housing[::5] + mean_housing = ConstantLearner()(housing) + no_target = housing.transform(Domain(housing.domain.attributes, None)) + self.send_signal(self.widget.Inputs.data, no_target) + self.send_signal(self.widget.Inputs.predictors, mean_housing, 1) + self.widget.send_report() def test_invalid_regression_target(self): widget = self.widget