mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
[tests] Switch composer picture remote url test to use a local
python server, avoids dependance on remote service
This commit is contained in:
parent
9b976cfe26
commit
b7afe396e4
@ -60,8 +60,6 @@ class TestQgsComposerPicture : public QObject
|
||||
void pictureExpression();
|
||||
void pictureInvalidExpression();
|
||||
|
||||
void pictureRemoteUrl(); //test fetching picture from a url
|
||||
|
||||
private:
|
||||
QgsComposition* mComposition;
|
||||
QgsComposerPicture* mComposerPicture;
|
||||
@ -386,19 +384,5 @@ void TestQgsComposerPicture::pictureInvalidExpression()
|
||||
mComposerPicture->setUsePictureExpression( false );
|
||||
}
|
||||
|
||||
void TestQgsComposerPicture::pictureRemoteUrl()
|
||||
{
|
||||
//test picture source via bad expression
|
||||
mComposition->addComposerPicture( mComposerPicture );
|
||||
|
||||
mComposerPicture->setPicturePath( "http://www.qgis.org/en/_static/logo.png" );
|
||||
|
||||
QgsCompositionChecker checker( "composerpicture_remote", mComposition );
|
||||
QVERIFY( checker.testComposition( mReport, 0, 0 ) );
|
||||
|
||||
mComposition->removeItem( mComposerPicture );
|
||||
mComposerPicture->setUsePictureExpression( false );
|
||||
}
|
||||
|
||||
QTEST_MAIN( TestQgsComposerPicture )
|
||||
#include "testqgscomposerpicture.moc"
|
||||
|
@ -27,10 +27,11 @@ ADD_PYTHON_TEST(PyQgsComposition test_qgscomposition.py)
|
||||
ADD_PYTHON_TEST(PyQgsAnalysis test_qgsanalysis.py)
|
||||
ADD_PYTHON_TEST(PyQgsColorScheme test_qgscolorscheme.py)
|
||||
ADD_PYTHON_TEST(PyQgsColorSchemeRegistry test_qgscolorschemeregistry.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerMap test_qgscomposermap.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerMapGrid test_qgscomposermapgrid.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerEffects test_qgscomposereffects.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerShapes test_qgscomposershapes.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerMap test_qgscomposermap.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerMapGrid test_qgscomposermapgrid.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerEffects test_qgscomposereffects.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerShapes test_qgscomposershapes.py)
|
||||
ADD_PYTHON_TEST(PyQgsComposerPicture test_qgscomposerpicture.py)
|
||||
ADD_PYTHON_TEST(PyQgsSymbolLayerV2 test_qgssymbollayerv2.py)
|
||||
ADD_PYTHON_TEST(PyQgsPoint test_qgspoint.py)
|
||||
ADD_PYTHON_TEST(PyQgsAtlasComposition test_qgsatlascomposition.py)
|
||||
|
91
tests/src/python/test_qgscomposerpicture.py
Normal file
91
tests/src/python/test_qgscomposerpicture.py
Normal file
@ -0,0 +1,91 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""QGIS Unit tests for QgsComposerPicture.
|
||||
|
||||
.. note:: This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
"""
|
||||
__author__ = '(C) 2015 by Nyall Dawson'
|
||||
__date__ = '02/07/2015'
|
||||
__copyright__ = 'Copyright 2015, The QGIS Project'
|
||||
# This will get replaced with a git SHA1 when you do a git archive
|
||||
__revision__ = '$Format:%H$'
|
||||
|
||||
import qgis
|
||||
import os
|
||||
import sys
|
||||
import SocketServer
|
||||
import threading
|
||||
import SimpleHTTPServer
|
||||
from PyQt4.QtGui import QPainter, QColor
|
||||
from PyQt4.QtCore import QRectF, QCoreApplication
|
||||
|
||||
from qgis.core import (QgsComposerPicture,
|
||||
QgsComposition,
|
||||
QgsMapSettings
|
||||
)
|
||||
from utilities import (unitTestDataPath,
|
||||
getQgisTestApp,
|
||||
TestCase,
|
||||
unittest
|
||||
)
|
||||
from qgscompositionchecker import QgsCompositionChecker
|
||||
|
||||
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
|
||||
TEST_DATA_DIR = unitTestDataPath()
|
||||
|
||||
class TestQgsComposerPicture(TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
# Bring up a simple HTTP server, for remote picture tests
|
||||
os.chdir( unitTestDataPath() + '' )
|
||||
handler = SimpleHTTPServer.SimpleHTTPRequestHandler
|
||||
|
||||
cls.httpd = SocketServer.TCPServer(('localhost', 0), handler)
|
||||
cls.port = cls.httpd.server_address[1]
|
||||
|
||||
cls.httpd_thread = threading.Thread( target=cls.httpd.serve_forever )
|
||||
cls.httpd_thread.setDaemon( True )
|
||||
cls.httpd_thread.start()
|
||||
|
||||
def __init__(self, methodName):
|
||||
"""Run once on class initialisation."""
|
||||
unittest.TestCase.__init__(self, methodName)
|
||||
|
||||
TEST_DATA_DIR = unitTestDataPath()
|
||||
self.pngImage = TEST_DATA_DIR + "/sample_image.png";
|
||||
|
||||
# create composition
|
||||
self.mapSettings = QgsMapSettings()
|
||||
self.composition = QgsComposition(self.mapSettings)
|
||||
self.composition.setPaperSize(297, 210)
|
||||
|
||||
self.composerPicture = QgsComposerPicture( self.composition )
|
||||
self.composerPicture.setPicturePath( self.pngImage )
|
||||
self.composerPicture.setSceneRect( QRectF( 70, 70, 100, 100 ) )
|
||||
self.composerPicture.setFrameEnabled( True )
|
||||
self.composition.addComposerPicture(self.composerPicture)
|
||||
|
||||
def testResizeZoom(self):
|
||||
"""Test picture resize zoom mode."""
|
||||
self.composerPicture.setResizeMode( QgsComposerPicture.Zoom )
|
||||
|
||||
checker = QgsCompositionChecker('composerpicture_resize_zoom', self.composition)
|
||||
testResult, message = checker.testComposition()
|
||||
|
||||
assert testResult, message
|
||||
|
||||
def testRemoteImage(self):
|
||||
"""Test fetching remote picture."""
|
||||
self.composerPicture.setPicturePath( 'http://localhost:' + str( TestQgsComposerPicture.port ) + '/qgis_local_server/logo.png' )
|
||||
|
||||
checker = QgsCompositionChecker('composerpicture_remote', self.composition)
|
||||
testResult, message = checker.testComposition()
|
||||
|
||||
self.composerPicture.setPicturePath( self.pngImage )
|
||||
assert testResult, message
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
BIN
tests/testdata/qgis_local_server/logo.png
vendored
Normal file
BIN
tests/testdata/qgis_local_server/logo.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
Loading…
x
Reference in New Issue
Block a user