62 changes: 59 additions & 3 deletions tests/src/python/test_qgsvectorlayer.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,21 @@

import os
import qgis
from PyQt4.QtCore import QVariant
from PyQt4.QtCore import QVariant, QObject, SIGNAL
from PyQt4.QtGui import QPainter

from qgis.core import (QgsVectorLayer,
from qgis.core import (QGis,
QgsVectorLayer,
QgsFeature,
QgsFeatureRequest,
QgsGeometry,
QgsPoint,
QgsField,
QgsFields,
QgsMapLayerRegistry,
QgsVectorJoinInfo)
QgsVectorJoinInfo,
QgsSymbolV2,
QgsSingleSymbolRendererV2)
from utilities import (unitTestDataPath,
getQgisTestApp,
TestCase,
Expand Down Expand Up @@ -913,6 +917,58 @@ def test_InvalidOperations(self):

assert not layer.deleteAttribute(-1)

def onBlendModeChanged( self, mode ):
self.blendModeTest = mode

def test_setBlendMode( self ):
layer = createLayerWithOnePoint()

self.blendModeTest = 0
QObject.connect( layer, SIGNAL( "blendModeChanged( const QPainter::CompositionMode )" ),
self.onBlendModeChanged )
layer.setBlendMode( QPainter.CompositionMode_Screen )

assert self.blendModeTest == QPainter.CompositionMode_Screen
assert layer.blendMode() == QPainter.CompositionMode_Screen

def test_setFeatureBlendMode( self ):
layer = createLayerWithOnePoint()

self.blendModeTest = 0
QObject.connect( layer, SIGNAL( "featureBlendModeChanged( const QPainter::CompositionMode )" ),
self.onBlendModeChanged )
layer.setFeatureBlendMode( QPainter.CompositionMode_Screen )

assert self.blendModeTest == QPainter.CompositionMode_Screen
assert layer.featureBlendMode() == QPainter.CompositionMode_Screen

def onLayerTransparencyChanged( self, tr ):
self.transparencyTest = tr

def test_setLayerTransparency( self ):
layer = createLayerWithOnePoint()

self.transparencyTest = 0
QObject.connect( layer, SIGNAL( "layerTransparencyChanged( int )" ),
self.onLayerTransparencyChanged )
layer.setLayerTransparency( 50 )
assert self.transparencyTest == 50
assert layer.layerTransparency() == 50

def onRendererChanged( self ):
self.rendererChanged = True
def test_setRendererV2( self ):
layer = createLayerWithOnePoint()

self.rendererChanged = False
QObject.connect( layer, SIGNAL( "rendererChanged()" ),
self.onRendererChanged )

r = QgsSingleSymbolRendererV2( QgsSymbolV2.defaultSymbol( QGis.Point ) )
layer.setRendererV2( r )
assert self.rendererChanged == True
assert layer.rendererV2() == r

# TODO:
# - fetch rect: feat with changed geometry: 1. in rect, 2. out of rect
# - more join tests
Expand Down