﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
11867	if spatialite is installed and pysqlite2.5 is installed without `enable_load_extension` tests won't run	Daniel Ring	nobody	"Using spatialite with contrib.gis is supported only with pysqlite2.5.0 or higher, and pysqlite must be compiled with `enable_load_extension` support (see http://geodjango.org/docs/install.html#pysqlite2 ).  If spatialite is present, `settings.DATABASE_ENGINE == 'sqlite3'`, and pysqlite is present but without `enable_load_extension` support, tests/runtests.py fails as follows:

{{{
Traceback (most recent call last):
  File ""./runtests.py"", line 191, in <module>
    django_tests(int(options.verbosity), options.interactive, args)
  File ""./runtests.py"", line 161, in django_tests
    failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive, extra_tests=extra_tests)
  File ""/home/dan/work/django/django/django/test/simple.py"", line 191, in run_tests
    connection.creation.create_test_db(verbosity, autoclobber=not interactive)
  File ""/home/dan/work/django/django/django/db/backends/creation.py"", line 332, in create_test_db
    can_rollback = self._rollback_works()
  File ""/home/dan/work/django/django/django/db/backends/creation.py"", line 389, in _rollback_works
    cursor = self.connection.cursor()
  File ""/home/dan/work/django/django/django/db/backends/__init__.py"", line 81, in cursor
    cursor = self._cursor()
  File ""/home/dan/work/django/django/django/db/backends/sqlite3/base.py"", line 175, in _cursor
    connection_created.send(sender=self.__class__)
  File ""/home/dan/work/django/django/django/dispatch/dispatcher.py"", line 166, in send
    response = receiver(signal=self, sender=sender, **named)
  File ""/home/dan/work/django/django/django/contrib/gis/db/backend/spatialite/__init__.py"", line 26, in initialize_spatialite
    connection.connection.enable_load_extension(True)
AttributeError: 'sqlite3.Connection' object has no attribute 'enable_load_extension'
}}}

Note that this is not a test failure, but rather a failure of any tests to run at all.

Also, Debian package python-pysqlite2 (currently) defaults to disabling `enable_load_extension`.  (See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543252 )

I think either

1. `settings.DATABASE_ENGINE='spatialite'` instead of `'sqlite3'` should be used (my preference) (or maybe `sqlite3_spatialite` or something); or

2. `contrib.gis.tests.utils.spatialite` should only be set if `enable_load_extension` is available (`contrib.gis` tests should be skipped somehow).
"		closed	GIS	1.1		fixed	enable_load_extension	Daniel Ring	Unreviewed	0	0	0	0	0	0
