(django version 1.3.1) To explain my set up would be very hard as it's not just plain Django but there's a bunch of other third parties involved but we'll have to try.
I'm getting this traceback when running tests:: Traceback (most recent call last): File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/utils/unittest/case.py", line 339, in run testMethod() File "/Users/peterbe/dev/MOZILLA/PTO/pto/apps/users/tests.py", line 310, in test_mozilla_ldap_backend_basic user, created = back.get_or_create_user('peter', ldap_user) File "/Users/peterbe/dev/MOZILLA/PTO/pto/apps/users/auth/backends.py", line 146, in get_or_create_user .filter(email__iexact=ldap_user.attrs.get('mail')[0])): File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/models/query.py", line 107, in _result_iter self._fill_cache() File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/models/query.py", line 772, in _fill_cache self._result_cache.append(self._iter.next()) File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/models/query.py", line 273, in iterator for row in compiler.results_iter(): File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/models/sql/compiler.py", line 680, in results_iter for rows in self.execute_sql(MULTI): File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/models/sql/compiler.py", line 734, in execute_sql cursor = self.connection.cursor() File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/backends/__init__.py", line 252, in cursor cursor = util.CursorWrapper(self._cursor(), self) File "/Users/peterbe/dev/MOZILLA/PTO/pto/vendor/src/django/django/db/backends/mysql/base.py", line 318, in _cursor if settings_dict['PORT']: KeyError: 'PORT' So just above line 318 in db/backends/mysql/base.py I put in this:: if 'PORT' not in settings_dict: # my debugging from pprint import pprint;pprint(settings_dict) # mydebugging if settings_dict['PORT']: kwargs['port'] = int(settings_dict['PORT']) And then when printed out it prints this:: {'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'NAME': 'test_pto', 'OPTIONS': {'charset': 'utf8', 'init_command': 'SET storage_engine=InnoDB', 'use_unicode': True}, 'PASSWORD': XXXXXX, 'TEST_CHARSET': 'utf8', 'TEST_COLLATION': 'utf8_general_ci', 'TEST_MIRROR': None, 'TEST_NAME': None, 'TIME_ZONE': 'America/Los_Angeles', 'USER': 'root'} As you can see it's a copy of settings.DATABASES but with the name having an added prefix of "test_". Except now it's missing 'PORT'. My settings look like this:: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pto', 'USER': 'root', 'PASSWORD': XXXX, 'HOST': '', 'PORT': '', 'OPTIONS': { 'init_command': 'SET storage_engine=InnoDB', 'charset' : 'utf8', 'use_unicode' : True, }, 'TEST_CHARSET': 'utf8', 'TEST_COLLATION': 'utf8_general_ci', }, } Having a blank 'PORT' key shouldn't be a problem. Removing the key doesn't help. However, setting it to '3306' *does* help but that's not getting to the root of the problem. I know it's a very very hard problem to debug but by mentioning it perhaps other people can chip in some experience. It's a long shot. A couple of other things: * It fails on the first and every test * Debugging self._connection['default'] a bit I find that it has 'PORT' for a while (I think whilst setting up fixtures and stuff) and then stops having it. * I'm using github.com/jbalogh/test-utils but that hasn't changed and it used to work perfectly fine a couple of days ago. * Switching test runner to TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner' solves the problem but I didn't need to do this before. * Colleagues have been unable to reproduce this using very similar stacks which could mean it's OS related to threading or something really low-level. Sigh... -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/p21FozseT44J. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.