mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-10 00:04:23 -04:00
Add test coverage for locator result scores
This commit is contained in:
parent
37a4400e0c
commit
e0967e2041
@ -33,13 +33,20 @@ start_app()
|
|||||||
class test_filter(QgsLocatorFilter):
|
class test_filter(QgsLocatorFilter):
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, identifier, prefix=None, groupResult=False, groupScore=False, parent=None
|
self,
|
||||||
|
identifier,
|
||||||
|
prefix=None,
|
||||||
|
groupResult=False,
|
||||||
|
groupScore=False,
|
||||||
|
resultScore=False,
|
||||||
|
parent=None,
|
||||||
):
|
):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.identifier = identifier
|
self.identifier = identifier
|
||||||
self._prefix = prefix
|
self._prefix = prefix
|
||||||
self.groupResult = groupResult
|
self.groupResult = groupResult
|
||||||
self.groupScore = groupScore
|
self.groupScore = groupScore
|
||||||
|
self.resultScore = resultScore
|
||||||
|
|
||||||
def clone(self):
|
def clone(self):
|
||||||
return test_filter(
|
return test_filter(
|
||||||
@ -47,6 +54,7 @@ class test_filter(QgsLocatorFilter):
|
|||||||
prefix=self.prefix,
|
prefix=self.prefix,
|
||||||
groupResult=self.groupResult,
|
groupResult=self.groupResult,
|
||||||
groupScore=self.groupScore,
|
groupScore=self.groupScore,
|
||||||
|
resultScore=self.resultScore,
|
||||||
)
|
)
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
@ -78,6 +86,8 @@ class test_filter(QgsLocatorFilter):
|
|||||||
result.group = "group b"
|
result.group = "group b"
|
||||||
if self.groupScore:
|
if self.groupScore:
|
||||||
result.groupScore = 10
|
result.groupScore = 10
|
||||||
|
if self.resultScore:
|
||||||
|
result.score = (i + 1) / n
|
||||||
self.resultFetched.emit(result)
|
self.resultFetched.emit(result)
|
||||||
|
|
||||||
def triggerResult(self, result):
|
def triggerResult(self, result):
|
||||||
@ -437,6 +447,9 @@ class TestQgsLocator(QgisTestCase):
|
|||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
p.data(p.index(1, 0), QgsLocatorModel.CustomRole.ResultType), 2
|
p.data(p.index(1, 0), QgsLocatorModel.CustomRole.ResultType), 2
|
||||||
)
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
p.data(p.index(1, 0), QgsLocatorModel.CustomRole.ResultScore), 0.5
|
||||||
|
)
|
||||||
self.assertEqual(p.data(p.index(2, 0)), "a1")
|
self.assertEqual(p.data(p.index(2, 0)), "a1")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
p.data(p.index(2, 0), QgsLocatorModel.CustomRole.ResultType), 2
|
p.data(p.index(2, 0), QgsLocatorModel.CustomRole.ResultType), 2
|
||||||
@ -516,8 +529,8 @@ class TestQgsLocator(QgisTestCase):
|
|||||||
# test with groups and group score
|
# test with groups and group score
|
||||||
m.clear()
|
m.clear()
|
||||||
self.assertEqual(p.rowCount(), 0)
|
self.assertEqual(p.rowCount(), 0)
|
||||||
filter_b = test_filter("c", None, groupResult=True, groupScore=True)
|
filter_c = test_filter("c", None, groupResult=True, groupScore=True)
|
||||||
l.registerFilter(filter_b)
|
l.registerFilter(filter_c)
|
||||||
l.fetchResults("c", context)
|
l.fetchResults("c", context)
|
||||||
for i in range(200):
|
for i in range(200):
|
||||||
sleep(0.002)
|
sleep(0.002)
|
||||||
@ -600,6 +613,24 @@ class TestQgsLocator(QgisTestCase):
|
|||||||
p.data(p.index(27, 0), QgsLocatorModel.CustomRole.ResultFilterGroupScore),
|
p.data(p.index(27, 0), QgsLocatorModel.CustomRole.ResultFilterGroupScore),
|
||||||
QgsLocatorModel.NoGroup,
|
QgsLocatorModel.NoGroup,
|
||||||
)
|
)
|
||||||
|
m.clear()
|
||||||
|
|
||||||
|
l.deregisterFilter(filter_a)
|
||||||
|
l.deregisterFilter(filter_b)
|
||||||
|
l.deregisterFilter(filter_c)
|
||||||
|
|
||||||
|
filter_d = test_filter("d", resultScore=True)
|
||||||
|
l.registerFilter(filter_d)
|
||||||
|
l.fetchResults("d", context)
|
||||||
|
for i in range(200):
|
||||||
|
sleep(0.002)
|
||||||
|
QCoreApplication.processEvents()
|
||||||
|
self.assertEqual(p.rowCount(), 4)
|
||||||
|
self.assertEqual(p.data(p.index(0, 0)), "test_d")
|
||||||
|
self.assertEqual(p.data(p.index(1, 0)), "d2")
|
||||||
|
self.assertEqual(
|
||||||
|
p.data(p.index(1, 0), QgsLocatorModel.CustomRole.ResultScore), 1
|
||||||
|
)
|
||||||
|
|
||||||
def testAutoModel(self):
|
def testAutoModel(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user