Найти - Пользователи
Полная версия: Проблема с тестами при использовании базы данных MySQL
Начало » Django » Проблема с тестами при использовании базы данных MySQL
1
Alen
Запускаю стандартные django-тесты. При указании базы данных sqlite в settings.py
if 'test' in sys.argv or 'jenkins' in sys.argv:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME':':memory:',
            'SUPPORTS_TRANSACTIONS': 'False',
            }
    }
все тесты проходят.
 # ./manage.py test core
Creating test database for alias 'default'...
......................................................................
----------------------------------------------------------------------
Ran 70 tests in 47.926s
OK
Как только комментрую код с указанием sqlite в качестве базы для тестирования, появляются проблемы.
 ./manage.py test core
Creating test database for alias 'default'...
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
======================================================================
ERROR: test_about (project.core.tests.CoreTestURLResolves)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/test/testcases.py", line 259, in __call__
    self._pre_setup()
  File "/usr/local/lib/python2.7/dist-packages/django/test/testcases.py", line 479, in _pre_setup
    self._fixture_setup()
  File "/usr/local/lib/python2.7/dist-packages/django/test/testcases.py", line 860, in _fixture_setup
    'skip_validation': True,
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 161, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 255, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/loaddata.py", line 193, in handle
    obj.save(using=using)
  File "/usr/local/lib/python2.7/dist-packages/django/core/serializers/base.py", line 165, in save
    models.Model.save_base(self.object, using=using, raw=True)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 650, in save_base
    result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 215, in _insert
    return insert_query(self.model, objs, fields, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1675, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 943, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 120, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 203, in execute
    if not self._defer_warnings: self._warning_check()
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 117, in _warning_check
    warn(w[-1], self.Warning, 3)
Warning: Problem installing fixture '/vagrant/project/fixtures/core.xml': Out of range value for column 'value' at row 1
...


Настройки подключения базы данных:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': 'project',                     
        'USER': 'project',
        'PASSWORD': 'project',
        'HOST': '127.0.0.1',                 
        'PORT': '3306',                        
        'TEST_CHARSET': 'UTF8',
      }
    }

В чем может быть проблема и как её решать?
lorien
File “/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py”, line 943, in execute_sql
cursor.execute(sql, params)

Сюда воткните дебаговй вывод и посмотрите какой sql и params приводят к ошибке
Alen
В общем c такой командой по созданию фикстур заработало:
./manage.py dumpdata  --natural --indent=1 -e contenttypes -e auth.Permission --format=xml  > project/fixtures/core.xml

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB