Re: [QGIS-Developer] Documentation tests failing on local machine

2020-08-19 Thread matteo
Hi Richard,

thanks for the answer!

> So not sure what to do with this:
> - tell everybody to use docker for this (easiest)
> - create better documentation for everybody to setup it's environment 
> (hard)...

IMHO if we want to keep all the chances to run the tests (standard
installation, custom installation and docker) than we should document
all methods, even if the custom installation is more difficult.

I'm -1 to keep only the docker solution, I think that being able to run
on the local installation is super important.

I would be happy to update the doc guidelines in order to share the
solution.

@Arnaud do you have some suggestions and/or guidelines I can add to the
documentation?

Cheers and thanks!

Matteo

___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] Documentation tests failing on local machine

2020-08-18 Thread Richard Duivenvoorde

Hi Matteo,

I have/had the same issue

Failed example:
iface = start_qgis()
Exception raised:
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 1336, in __run
exec(compile(example.source, filename, "single",
  File "", line 1, in 
iface = start_qgis()
NameError: name 'start_qgis' is not defined
**
1 items had failures:
   2 of   2 in composer (setup code)
***Test Failed*** 2 failures.

Exception occurred:
  File "", line 22, in 
ModuleNotFoundError: No module named 'qgis.testing'

But after A LOT of fiddling with my user.mk:
- adding a PYTHONPATH and a LD_LIBRARY_PATH
- adding my pythondir to the conf.py path: 
https://github.com/qgis/QGIS-Documentation/blob/master/conf.py#L317
it seemed I was able to run the tests... but fail:

Document: docs/pyqgis_developer_cookbook/network_analysis
-
Logged warning: Duplicate provider native registered
ASSERT failure in QVector::operator[]: "index out of range", file 
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h, line 459
make: *** [Makefile:43: doctest] Aborted

I see that the start_qgis is defined in the conf.py:
https://github.com/qgis/QGIS-Documentation/blob/1ec02b91b3321ae80a179b80a1a0a8508babcd9b/conf.py#L259

AND that Travis is still doing the tests, BUT using the docker image:
https://github.com/qgis/QGIS-Documentation/blob/1ec02b91b3321ae80a179b80a1a0a8508babcd9b/.travis.yml#L56

which is fine as it apparently is still (travis)happy...

So I think it is just a hell of a job to get your personal testing environment 
in place (especially if you have custom install dirs etc etc)..

Maybe best to use the docker test?
make -f docker.mk doctest
THAT one was running fine with me in the end...

Doctest summary
===
  306 tests
2 failures in tests
0 failures in setup code
0 failures in cleanup code
build finished with problems, 1 warning.
Makefile:43: recipe for target 'doctest' failed
make: *** [doctest] Error 1
make: *** [docker.mk:5: doctest] Error 2


So not sure what to do with this:
- tell everybody to use docker for this (easiest)
- create better documentation for everybody to setup it's environment (hard)...

Regards,

Richard Duivenvoorde


On 8/18/20 11:26 AM, matteo wrote:
> Hi all,
> 
> I don't know what I'm doing wrong but when I run documentation tests on
> my local machine I always get messages like:
> 
> **
> Line 6, in geometry (setup code)
> Failed example:
> iface = start_qgis()
> 
> from qgis.core import (
>   QgsProject,
>   QgsVectorLayer,
> )
> 
> # Load the countries layer
> if not QgsProject.instance().mapLayersByName("countries"):
> vlayer =
> QgsVectorLayer("/usr/share/qgis/resources/data/world_map.gpkg|layerName=countries",
> "countries", "ogr")
> assert vlayer.isValid()
> QgsProject.instance().addMapLayers([vlayer])
> Exception raised:
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 1336, in __run
> exec(compile(example.source, filename, "single",
>   File "", line 1, in 
> iface = start_qgis()
> NameError: name 'start_qgis' is not defined
> **
> 1 items had failures:
>2 of   2 in geometry (setup code)
> ***Test Failed*** 2 failures.
> 
> 
> 
> I've QGIS compiled and I've added this lines in the user.mk file (in
> order to run test with a compiled version of QGIS instead of the default
> installation):
> 
> # Root installation folder
> QGIS_PREFIX_PATH = /home/matteo/dev/qgis-master/output
> 
> include venv.mk
> 
> and run the following code
> 
> make -f user.mk doctest
> 
> I followed exactly the documentation
> (https://docs.qgis.org/testing/en/docs/documentation_guidelines/cookbook_guidelines.html#how-to-test-snippets-on-your-local-machine).
> 
> I get the same exact errors also with the local installation of QGIS
> when running:
> 
> make -f venv.mk doctest
> 
> Some suggestions?
> 
> Cheers and thanks!
> 
> Matteo
> 
> 
> ___
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> 

___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

[QGIS-Developer] Documentation tests failing on local machine

2020-08-18 Thread matteo
Hi all,

I don't know what I'm doing wrong but when I run documentation tests on
my local machine I always get messages like:

**
Line 6, in geometry (setup code)
Failed example:
iface = start_qgis()

from qgis.core import (
  QgsProject,
  QgsVectorLayer,
)

# Load the countries layer
if not QgsProject.instance().mapLayersByName("countries"):
vlayer =
QgsVectorLayer("/usr/share/qgis/resources/data/world_map.gpkg|layerName=countries",
"countries", "ogr")
assert vlayer.isValid()
QgsProject.instance().addMapLayers([vlayer])
Exception raised:
Traceback (most recent call last):
  File "/usr/lib/python3.8/doctest.py", line 1336, in __run
exec(compile(example.source, filename, "single",
  File "", line 1, in 
iface = start_qgis()
NameError: name 'start_qgis' is not defined
**
1 items had failures:
   2 of   2 in geometry (setup code)
***Test Failed*** 2 failures.



I've QGIS compiled and I've added this lines in the user.mk file (in
order to run test with a compiled version of QGIS instead of the default
installation):

# Root installation folder
QGIS_PREFIX_PATH = /home/matteo/dev/qgis-master/output

include venv.mk

and run the following code

make -f user.mk doctest

I followed exactly the documentation
(https://docs.qgis.org/testing/en/docs/documentation_guidelines/cookbook_guidelines.html#how-to-test-snippets-on-your-local-machine).

I get the same exact errors also with the local installation of QGIS
when running:

make -f venv.mk doctest

Some suggestions?

Cheers and thanks!

Matteo


___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer