﻿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
21143	runtests might execute queries against the normal database instead of the testdatabase	Florian Apolloner	nobody	"The way our testrunner currently works is that it constructs the test classes before creating the test database and resetting the database names. This causes module level queries (which you shouldn't have, but…) to be executed against the main database resulting in errors like: 

{{{
Traceback (most recent call last):
  File ""/usr/lib/python3.3/unittest/case.py"", line 384, in _executeTestPart
    function()
  File ""/usr/lib/python3.3/unittest/loader.py"", line 32, in testFailure
    raise exception
ImportError: Failed to import test module: transactions_regress.tests
Traceback (most recent call last):
  File ""/var/lib/jenkins/jobs/Django/workspace/database/mysql_gis/python/python3.3/django/db/utils.py"", line 101, in inner
    return func(*args, **kwargs)
  File ""/var/lib/jenkins/jobs/Django/workspace/database/mysql_gis/python/python3.3/django/db/backends/mysql/base.py"", line 131, in execute
    return self.cursor.execute(query, args)
  File ""/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py"", line 185, in execute
    self.errorhandler(self, exc, value)
  File ""/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/connections.py"", line 37, in defaulterrorhandler
    raise errorvalue
  File ""/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py"", line 172, in execute
    r = self._query(query)
  File ""/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py"", line 332, in _query
    rowcount = self._do_query(q)
  File ""/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py"", line 296, in _do_query
    db.query(q)
_mysql_exceptions.OperationalError: (1050, ""Table 'INTROSPECT_TEST' already exists"")
}}}

In the case above this is caused by two parallel testruns against different TEST_NAMEs but the same NAME in the database config. It would be nice if we could fix that."	Bug	new	Testing framework	dev	Normal			Ülgen Sarıkavak	Accepted	0	0	0	0	0	0
