Skip to content

Commit bfdc84f

Browse files
committedMay 16, 2017
Fixes to unit tests
1 parent ee9fabb commit bfdc84f

9 files changed

+37
-61
lines changed
 

‎python/core/qgsvectorlayerlabeling.sip

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ class QgsAbstractVectorLayerLabeling
2323
#include "qgsvectorlayerlabeling.h"
2424
%End
2525
public:
26-
2726
QgsAbstractVectorLayerLabeling();
27+
%Docstring
28+
Default constructor
29+
%End
2830
virtual ~QgsAbstractVectorLayerLabeling();
2931

3032
virtual QString type() const = 0;

‎src/core/qgsrulebasedlabeling.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,15 +247,19 @@ class CORE_EXPORT QgsRuleBasedLabeling : public QgsAbstractVectorLayerLabeling
247247
// evaluation
248248

249249
//! add providers
250+
//! \note not available in Python bindings
250251
void createSubProviders( QgsVectorLayer *layer, RuleToProviderMap &subProviders, QgsRuleBasedLabelProvider *provider ) SIP_SKIP;
251252

252253
//! append rule keys of descendants that contain valid settings (i.e. they will be sub-providers)
254+
//! \note not available in Python bindings
253255
void subProviderIds( QStringList &list ) const SIP_SKIP;
254256

255257
//! call prepare() on sub-providers and populate attributeNames
258+
//! \note not available in Python bindings
256259
void prepare( const QgsRenderContext &context, QSet<QString> &attributeNames, RuleToProviderMap &subProviders ) SIP_SKIP;
257260

258261
//! register individual features
262+
//! \note not available in Python bindings
259263
RegisterResult registerFeature( QgsFeature &feature, QgsRenderContext &context, RuleToProviderMap &subProviders, QgsGeometry *obstacleGeometry = nullptr ) SIP_SKIP;
260264

261265
/**
@@ -326,6 +330,7 @@ class CORE_EXPORT QgsRuleBasedLabeling : public QgsAbstractVectorLayerLabeling
326330
virtual QString type() const override;
327331
virtual QgsRuleBasedLabeling *clone() const override SIP_FACTORY;
328332
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) const override;
333+
//! \note not available in Python bindings
329334
virtual QgsVectorLayerLabelProvider *provider( QgsVectorLayer *layer ) const override SIP_SKIP;
330335
virtual QStringList subProviders() const override;
331336
virtual QgsPalLayerSettings settings( const QString &providerId = QString() ) const override;

‎src/core/qgsvectorlayerlabeling.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class QgsVectorLayerLabelProvider;
3939
class CORE_EXPORT QgsAbstractVectorLayerLabeling
4040
{
4141
public:
42-
42+
//! Default constructor
4343
QgsAbstractVectorLayerLabeling() = default;
4444
virtual ~QgsAbstractVectorLayerLabeling() = default;
4545

@@ -50,6 +50,7 @@ class CORE_EXPORT QgsAbstractVectorLayerLabeling
5050
virtual QgsAbstractVectorLayerLabeling *clone() const = 0 SIP_FACTORY;
5151

5252
//! Factory for label provider implementation
53+
//! \note not available in Python bindings
5354
virtual QgsVectorLayerLabelProvider *provider( QgsVectorLayer *layer ) const SIP_SKIP { Q_UNUSED( layer ); return nullptr; }
5455

5556
//! Return labeling configuration as XML element
@@ -99,6 +100,7 @@ class CORE_EXPORT QgsVectorLayerSimpleLabeling : public QgsAbstractVectorLayerLa
99100

100101
virtual QString type() const override;
101102
virtual QgsAbstractVectorLayerLabeling *clone() const override SIP_FACTORY;
103+
//! \note not available in Python bindings
102104
virtual QgsVectorLayerLabelProvider *provider( QgsVectorLayer *layer ) const override SIP_SKIP;
103105
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) const override;
104106
virtual QgsPalLayerSettings settings( const QString &providerId = QString() ) const override;

‎tests/src/core/testqgslabelingengine.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,9 @@ void TestQgsLabelingEngine::cleanup()
9898
void TestQgsLabelingEngine::setDefaultLabelParams( QgsPalLayerSettings &settings )
9999
{
100100
QgsTextFormat format;
101-
QFont font( QgsFontUtils::getStandardTestFont( QStringLiteral( "Bold" ) ).family(), 12 );
102-
format.setFont( font );
103-
format.setSize( 12 );
104-
format.setNamedStyle( QgsFontUtils::translateNamedStyle( "Bold" ) );
101+
format.setFont( QgsFontUtils::getStandardTestFont( QStringLiteral( "Bold" ) ) );
102+
format.setSize( 12.4 ); // TODO: why does it render nothing when point size == 12 ???
103+
format.setNamedStyle( "Bold" );
105104
format.setColor( QColor( 200, 0, 200 ) );
106105
settings.setFormat( format );
107106
}

‎tests/src/python/test_qgspallabeling_base.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@
3434

3535
from qgis.core import (
3636
QgsCoordinateReferenceSystem,
37+
QgsCoordinateTransform,
3738
QgsDataSourceUri,
39+
QgsGeometry,
3840
QgsLabelingEngineSettings,
3941
QgsProject,
4042
QgsMapSettings,
4143
QgsPalLabeling,
4244
QgsPalLayerSettings,
4345
QgsProviderRegistry,
46+
QgsStringReplacementCollection,
4447
QgsVectorLayer,
48+
QgsVectorLayerSimpleLabeling,
4549
QgsMultiRenderChecker,
4650
QgsUnitTypes
4751
)
@@ -273,6 +277,8 @@ def settingsDict(lyr):
273277
for attr in dir(lyr):
274278
if attr[0].islower() and not attr.startswith("__"):
275279
value = getattr(lyr, attr)
280+
if isinstance(value, (QgsGeometry, QgsStringReplacementCollection, QgsCoordinateTransform)):
281+
continue # ignore these objects
276282
if not isinstance(value, collections.Callable):
277283
res[attr] = value
278284
return res
@@ -392,18 +398,14 @@ def test_default_pal_disabled(self):
392398
msg = '\nExpected: Empty string\nGot: {0}'.format(palset)
393399
self.assertEqual(palset, '', msg)
394400

395-
def test_settings_enable_pal(self):
396-
# Verify default PAL settings enable PAL labeling for layer
397-
lyr = QgsPalLayerSettings()
398-
lyr.writeToLayer(self.layer)
399-
palset = self.layer.customProperty('labeling', '')
400-
msg = '\nExpected: Empty string\nGot: {0}'.format(palset)
401-
self.assertEqual(palset, 'pal', msg)
401+
def test_settings_no_labeling(self):
402+
self.layer.setLabeling(None)
403+
self.assertEqual(None, self.layer.labeling())
402404

403405
def test_layer_pal_activated(self):
404406
# Verify, via engine, that PAL labeling can be activated for layer
405407
lyr = self.defaultLayerSettings()
406-
lyr.writeToLayer(self.layer)
408+
self.layer.setLabeling(QgsVectorLayerSimpleLabeling(lyr))
407409
msg = '\nLayer labeling not activated, as reported by labelingEngine'
408410
self.assertTrue(QgsPalLabeling.staticWillUseLayer(self.layer), msg)
409411

@@ -412,14 +414,13 @@ def test_write_read_settings(self):
412414
# load and write default test settings
413415
lyr1 = self.defaultLayerSettings()
414416
lyr1dict = self.settingsDict(lyr1)
415-
# print lyr1dict
416-
lyr1.writeToLayer(self.layer)
417+
# print(lyr1dict)
418+
self.layer.setLabeling(QgsVectorLayerSimpleLabeling(lyr1))
417419

418420
# read settings
419-
lyr2 = QgsPalLayerSettings()
420-
lyr2.readFromLayer(self.layer)
421-
lyr2dict = self.settingsDict(lyr1)
422-
# print lyr2dict
421+
lyr2 = self.layer.labeling().settings()
422+
lyr2dict = self.settingsDict(lyr2)
423+
# print(lyr2dict)
423424

424425
msg = '\nLayer settings read not same as settings written'
425426
self.assertDictEqual(lyr1dict, lyr2dict, msg)

‎tests/src/python/test_qgspallabeling_canvas.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import sys
2323
import os
2424
from qgis.PyQt.QtCore import qDebug, QThreadPool
25+
from qgis.core import QgsVectorLayerSimpleLabeling
2526

2627
from utilities import (
2728
getTempfilePath,
@@ -67,7 +68,7 @@ def setUp(self):
6768
self._ColorTols.clear()
6869

6970
def checkTest(self, **kwargs):
70-
self.lyr.writeToLayer(self.layer)
71+
self.layer.setLabeling(QgsVectorLayerSimpleLabeling(self.lyr))
7172

7273
ms = self._MapSettings # class settings
7374
settings_type = 'Class'

‎tests/src/python/test_qgspallabeling_composer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
from qgis.PyQt.QtPrintSupport import QPrinter
2929
from qgis.PyQt.QtSvg import QSvgRenderer, QSvgGenerator
3030

31-
from qgis.core import QgsComposition, QgsMapSettings, QgsProject, QgsComposerMap
31+
from qgis.core import QgsComposition, QgsMapSettings, QgsProject, QgsComposerMap, QgsVectorLayerSimpleLabeling
32+
3233

3334
from utilities import (
3435
getTempfilePath,
@@ -284,7 +285,7 @@ def get_composer_output(self, kind):
284285

285286
# noinspection PyUnusedLocal
286287
def checkTest(self, **kwargs):
287-
self.lyr.writeToLayer(self.layer)
288+
self.layer.setLabeling(QgsVectorLayerSimpleLabeling(self.lyr))
288289

289290
ms = self._MapSettings # class settings
290291
settings_type = 'Class'

‎tests/src/python/test_qgspallabeling_placement.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
QgsPalLayerSettings,
2828
QgsSingleSymbolRenderer,
2929
QgsMarkerSymbol,
30-
QgsProperty)
30+
QgsProperty,
31+
QgsVectorLayerSimpleLabeling)
3132
from utilities import getTempfilePath, renderMapToImage, mapSettingsString
3233

3334
from test_qgspallabeling_base import TestQgsPalLabeling, runSuite
@@ -65,7 +66,7 @@ def setUp(self):
6566
self._MapSettings.setLabelingEngineSettings(engine_settings)
6667

6768
def checkTest(self, **kwargs):
68-
self.lyr.writeToLayer(self.layer)
69+
self.layer.setLabeling(QgsVectorLayerSimpleLabeling(self.lyr))
6970

7071
ms = self._MapSettings # class settings
7172
settings_type = 'Class'

‎tests/src/python/test_qgstextrenderer.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,6 @@ def testBufferGettersSetters(self):
9393
s.setFillBufferInterior(True)
9494
self.assertTrue(s.fillBufferInterior())
9595

96-
def testBufferReadWriteLayer(self):
97-
"""test writing and retrieving settings from a layer"""
98-
layer = createEmptyLayer()
99-
s = self.createBufferSettings()
100-
s.writeToLayer(layer)
101-
t = QgsTextBufferSettings()
102-
t.readFromLayer(layer)
103-
self.checkBufferSettings(t)
104-
10596
def testBufferReadWriteXml(self):
10697
"""test saving and restoring state of a buffer to xml"""
10798
doc = QDomDocument("testdoc")
@@ -190,15 +181,6 @@ def testBackgroundCopy(self):
190181
s3 = QgsTextBackgroundSettings(s)
191182
self.checkBackgroundSettings(s3)
192183

193-
def testBackgroundReadWriteLayer(self):
194-
"""test writing and retrieving settings from a layer"""
195-
layer = createEmptyLayer()
196-
s = self.createBackgroundSettings()
197-
s.writeToLayer(layer)
198-
t = QgsTextBackgroundSettings()
199-
t.readFromLayer(layer)
200-
self.checkBackgroundSettings(t)
201-
202184
def testBackgroundReadWriteXml(self):
203185
"""test saving and restoring state of a background to xml"""
204186
doc = QDomDocument("testdoc")
@@ -272,15 +254,6 @@ def testShadowCopy(self):
272254
s3 = QgsTextShadowSettings(s)
273255
self.checkShadowSettings(s3)
274256

275-
def testShadowReadWriteLayer(self):
276-
"""test writing and retrieving settings from a layer"""
277-
layer = createEmptyLayer()
278-
s = self.createShadowSettings()
279-
s.writeToLayer(layer)
280-
t = QgsTextShadowSettings()
281-
t.readFromLayer(layer)
282-
self.checkShadowSettings(t)
283-
284257
def testShadowReadWriteXml(self):
285258
"""test saving and restoring state of a shadow to xml"""
286259
doc = QDomDocument("testdoc")
@@ -340,15 +313,6 @@ def testFormatCopy(self):
340313
s3 = QgsTextFormat(s)
341314
self.checkTextFormat(s3)
342315

343-
def testFormatReadWriteLayer(self):
344-
"""test writing and retrieving settings from a layer"""
345-
layer = createEmptyLayer()
346-
s = self.createFormatSettings()
347-
s.writeToLayer(layer)
348-
t = QgsTextFormat()
349-
t.readFromLayer(layer)
350-
self.checkTextFormat(t)
351-
352316
def testFormatReadWriteXml(self):
353317
"""test saving and restoring state of a shadow to xml"""
354318
doc = QDomDocument("testdoc")

0 commit comments

Comments
 (0)
Please sign in to comment.