20
20
import os
21
21
from utilities import unitTestDataPath , getQgisTestApp
22
22
from PyQt4 .QtCore import QUrl , QString , qDebug
23
+ from PyQt4 .QtXml import QDomDocument
23
24
from qgis .core import (QgsComposition ,
24
25
QgsComposerHtml ,
25
26
QgsComposerFrame ,
@@ -36,14 +37,10 @@ def setUp(self):
36
37
"""Run before each test."""
37
38
self .mComposition = QgsComposition (None )
38
39
self .mComposition .setPaperSize (297 , 210 ) #A4 landscape
39
- self .mComposerHtml = QgsComposerHtml (self .mComposition , False )
40
40
41
41
def tearDown (self ):
42
42
"""Run after each test."""
43
43
print "Tear down"
44
- if self .mComposerHtml :
45
- self .mComposition .removeMultiFrame (self .mComposerHtml )
46
- del self .mComposerHtml
47
44
48
45
def controlImagePath (self , theImageName ):
49
46
"""Helper to get the path to a control image."""
@@ -62,11 +59,12 @@ def htmlUrl(self):
62
59
63
60
def testTable (self ):
64
61
"""Test we can render a html table in a single frame."""
62
+ composerHtml = QgsComposerHtml (self .mComposition , False )
65
63
htmlFrame = QgsComposerFrame (self .mComposition ,
66
- self . mComposerHtml , 0 , 0 , 100 , 200 )
64
+ composerHtml , 0 , 0 , 100 , 200 )
67
65
htmlFrame .setFrameEnabled (True )
68
- self . mComposerHtml .addFrame (htmlFrame )
69
- self . mComposerHtml . setUrl (self .mComposerHtmlUrl ())
66
+ composerHtml .addFrame (htmlFrame )
67
+ composerHtml . setUrl (self .htmlUrl ())
70
68
checker = QgsCompositionChecker ()
71
69
myResult , myMessage = checker .testComposition (
72
70
"Composer html table" ,
@@ -77,13 +75,14 @@ def testTable(self):
77
75
78
76
def testTableMultiFrame (self ):
79
77
"""Test we can render to multiframes."""
80
- htmlFrame = QgsComposerFrame (self .mComposition , self .mComposerHtml ,
78
+ composerHtml = QgsComposerHtml (self .mComposition , False )
79
+ htmlFrame = QgsComposerFrame (self .mComposition , composerHtml ,
81
80
10 , 10 , 100 , 50 )
82
- self . mComposerHtml .addFrame (htmlFrame )
83
- self . mComposerHtml .setResizeMode (
81
+ composerHtml .addFrame (htmlFrame )
82
+ composerHtml .setResizeMode (
84
83
QgsComposerMultiFrame .RepeatUntilFinished )
85
- self . mComposerHtml . setUrl (self .mComposerHtmlUrl ())
86
- self . mComposerHtml .frame (0 ).setFrameEnabled (True )
84
+ composerHtml . setUrl (self .htmlUrl ())
85
+ composerHtml .frame (0 ).setFrameEnabled (True )
87
86
88
87
myPage = 0
89
88
checker1 = QgsCompositionChecker ()
@@ -118,5 +117,22 @@ def testTableMultiFrame(self):
118
117
print "Checking page 3"
119
118
assert myResult , myMessage
120
119
120
+ def testComposerHtmlAccessor (self ):
121
+ """Test that we can retrieve the ComposerHtml instance given an item.
122
+ """
123
+ myComposition = QgsComposition (CANVAS .mapRenderer ())
124
+ mySubstitutionMap = {'replace-me' : 'Foo bar' }
125
+ myFile = os .path .join (TEST_DATA_DIR , 'template.qpt' )
126
+ myTemplateFile = file (myFile , 'rt' )
127
+ myTemplateContent = myTemplateFile .read ()
128
+ myTemplateFile .close ()
129
+ myDocument = QDomDocument ()
130
+ myDocument .setContent (myTemplateContent )
131
+ myComposition .loadFromTemplate (myDocument , mySubstitutionMap )
132
+ myItem = myComposition .getComposerItemById ('html-test' )
133
+ myComposerHtml = myComposition .getComposerHtmlByItem (myItem )
134
+ myMessage = 'Could not retrieve the composer html given an item'
135
+ assert myComposerHtml is not None , myMessage
136
+
121
137
if __name__ == '__main__' :
122
138
unittest .main ()
0 commit comments