Skip to content

Commit 719db73

Browse files
committed
Test new ComposerHtml accessor method and fixes for other tests.
1 parent 6b87834 commit 719db73

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

tests/src/python/test_qgscomposerhtml.py

+28-12
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import os
2121
from utilities import unitTestDataPath, getQgisTestApp
2222
from PyQt4.QtCore import QUrl, QString, qDebug
23+
from PyQt4.QtXml import QDomDocument
2324
from qgis.core import (QgsComposition,
2425
QgsComposerHtml,
2526
QgsComposerFrame,
@@ -36,14 +37,10 @@ def setUp(self):
3637
"""Run before each test."""
3738
self.mComposition = QgsComposition(None)
3839
self.mComposition.setPaperSize(297, 210) #A4 landscape
39-
self.mComposerHtml = QgsComposerHtml(self.mComposition, False)
4040

4141
def tearDown(self):
4242
"""Run after each test."""
4343
print "Tear down"
44-
if self.mComposerHtml:
45-
self.mComposition.removeMultiFrame(self.mComposerHtml)
46-
del self.mComposerHtml
4744

4845
def controlImagePath(self, theImageName):
4946
"""Helper to get the path to a control image."""
@@ -62,11 +59,12 @@ def htmlUrl(self):
6259

6360
def testTable(self):
6461
"""Test we can render a html table in a single frame."""
62+
composerHtml = QgsComposerHtml(self.mComposition, False)
6563
htmlFrame = QgsComposerFrame(self.mComposition,
66-
self.mComposerHtml, 0, 0, 100, 200)
64+
composerHtml, 0, 0, 100, 200)
6765
htmlFrame.setFrameEnabled(True)
68-
self.mComposerHtml.addFrame(htmlFrame)
69-
self.mComposerHtml.setUrl(self.mComposerHtmlUrl())
66+
composerHtml.addFrame(htmlFrame)
67+
composerHtml.setUrl(self.htmlUrl())
7068
checker = QgsCompositionChecker()
7169
myResult, myMessage = checker.testComposition(
7270
"Composer html table",
@@ -77,13 +75,14 @@ def testTable(self):
7775

7876
def testTableMultiFrame(self):
7977
"""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,
8180
10, 10, 100, 50)
82-
self.mComposerHtml.addFrame(htmlFrame)
83-
self.mComposerHtml.setResizeMode(
81+
composerHtml.addFrame(htmlFrame)
82+
composerHtml.setResizeMode(
8483
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)
8786

8887
myPage = 0
8988
checker1 = QgsCompositionChecker()
@@ -118,5 +117,22 @@ def testTableMultiFrame(self):
118117
print "Checking page 3"
119118
assert myResult, myMessage
120119

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+
121137
if __name__ == '__main__':
122138
unittest.main()
Loading

0 commit comments

Comments
 (0)