[Qgis-developer] How to debug and unit test Python plugins
outside QGIS (e.g. in Ecplise IDE + PyDev)
Germán Carrillo
carrillo.german at gmail.com
Tue Jan 10 14:22:15 EST 2012
Hi,
you can find an example at [1], namely a class called "QgisInterface" in
the postgis_viewer.py, line 313.
Hope it helps.
Regards,
Germán
-------------------
[1]
http://downloads.tuxfamily.org/tuxgis/geoblogs/visor_postgis_pgadmin_3/postgis_viewer.zip
2012/1/10 Tim Sutton <lists at linfiniti.com>
> Hi
>
> On Tue, Jan 10, 2012 at 7:08 PM, Martin Dobias <wonder.sk at gmail.com>
> wrote:
> >> On Thu, Mar 3, 2011 at 10:40 AM, Martin Dobias <wonder.sk at gmail.com>
> wrote:
> >>
> >>> The only difference when running unit-tests (i.e. standalone apps) is
> >>> that you cannot access QGIS interface (qgis.utils.iface) since there
> >>> is no QGIS running. But that should not pose a big problem. In case
> >>> you really need access to that interface you can create your own
> >>> implementation of QgisInterface class and assign it to
> >>> qgis.utils.iface.
> >>>
> >>> Regards
> >>> Martin
> >>
> >> Martin do you (or anyone else) have example code for creating an iface
> >> instance from a standalone python / QGIS app?
> >
> > Hi Tim
> >
> > no I do not have a working example. In general it should be something
> like this:
> >
> > import qgis.utils
> > import qgis.gui
> >
> > class MyQgisInterface(qgis.gui.QgisInterface):
> > def __init__(self):
> > QgisInterface.__init__(self)
> > def mapCanvas(self):
> > return FOO
> > def mainWindow(self):
> > return BAR
> > def activeLayer(self):
> > return BAZ
> > # ... more methods ...
> >
> > # use our interface instance
> > qgis.utils.iface = MyQgisInterface()
> >
> > You will have to provide implementation of all the abstract virtual
> > functions defined in QgisInterface. Luckily most of them are not used
> > by plugins, so you may provide just implementations not
> > doing/returning anything - depending on how precisely would you like
> > to imitate QGIS environment.
> >
>
> Thanks Martin. Yes I have used the same approach in openModeller
> desktop some years ago to allow it to use QGIS (C++) plugins - I was
> just interested to know if someone had already baked a python
> equivalent in keeping with DRAY (dont repeat anyone else :-)).
>
> I'll go ahead and make an attempt at a python one then, thanks.
>
> Regards
>
> Tim
>
>
> > Regards
> > Martin
>
>
>
> --
> Tim Sutton - QGIS Project Steering Committee Member (Release Manager)
> ==============================================
> Please do not email me off-list with technical
> support questions. Using the lists will gain
> more exposure for your issues and the knowledge
> surrounding your issue will be shared with all.
>
> Visit http://linfiniti.com to find out about:
> * QGIS programming and support services
> * Mapserver and PostGIS based hosting plans
> * FOSS Consulting Services
> Skype: timlinux
> Irc: timlinux on #qgis at freenode.net
> ==============================================
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
--
-----------
|\__
(:>__)(
|/
Soluciones Geoinformáticas Libres
http://geotux.tuxfamily.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120110/4cecd72e/attachment.html
More information about the Qgis-developer
mailing list