Ошибка в django unittest при загрузке прибора

Я делаю unittests для приложения django. Мне нужны некоторые данные в базе данных для моих тестов, поэтому я использую json fixture.

У меня два светильника:

  1. для пользователей, и он работает нормально.
  2. для некоторых веб-страниц

Прибор 2 вызывает следующую ошибку:

Problem installing fixture 'C:\Users\luc\Dev\Hg\mnl-adminpub\website\fixtures\website-unittest.json': Traceback (most recent call last): File "C:\Python26\lib\site-packages\django\core\management\commands\loaddata.py", line 169, in handle obj.save(using=using) File "C:\Python26\lib\site-packages\django\core\serializers\base.py", line 165, in save models.Model.save_base(self.object, using=using, raw=True) File "C:\Python26\lib\site-packages\django\db\models\base.py", line 528, in save_base result = manager._insert(values, return_id=update_pk, using=using) File "C:\Python26\lib\site-packages\django\db\models\manager.py", line 195, in _insert return insert_query(self.model, values, **kwargs) File "C:\Python26\lib\site-packages\django\db\models\query.py", line 1479, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 783, in execute_sql cursor = super(SQLInsertCompiler, self).execute_sql(None) File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 727, in execute_sql cursor.execute(sql, params) File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", line 86, in execute return self.cursor.execute(query, args) File "C:\Python26\lib\site-packages\MySQLdb\cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue OperationalError: (1366, "Incorrect string value: '\\xE2\\x80\\xA8<br...' for column 'html' at row 1") 

Я создал прибор с дампадами. Я тестировал его с loaddata, и он отлично работает. Я использую mysql.

Любая идея о возможной причине проблемы?

Спасибо за вашу помощь

3 Solutions collect form web for “Ошибка в django unittest при загрузке прибора”

Вы должны использовать TEST_CHARSET , но внутри DATABASE config. Как это:

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test_sbet', 'USER': 'test_sbet', 'TEST_CHARSET': 'UTF8', } } 

Если это произойдет только во время тестирования, я бы заподозрил некоторые настройки TEST_, такие как TEST_CHARSET . Возможно, у вашего (обычного, не тестового) db есть некорректная кодировка? Если это так, вам нужно указать, какую кодировку должна установить тестовая база данных.

BTW. Если вы используете более старую версию (pre 1.2), то это должно быть сделано с помощью TEST_DATABASE_CHARSET .

Имел ту же проблему. Использование utfmb4 в базе данных MySql и добавление ключа CHARSET в словарь TEST помогли (Django 1.11):

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { ... 'charset': 'utf8mb4', }, 'TEST': {'CHARSET': 'utf8mb4',}, } } 
  • Создайте простой пароль для пользователя unittest, используя PASSWORD_HASHERS
  • Вымывание Django Queryset для проверки функции, которая принимает запрос
  • Проверка Django: проверьте начальное значение поля формы
  • Тестирование отправки электронной почты
  • Тест Django FileField с использованием тестовых приборов
  • Как изменить сеанс в тестовой среде Django
  • Как проверить форму Django с помощью ModelChoiceField с использованием тестового клиента и метода отправки
  • Как написать тесты для форм в Django?
  • Использование базовой проверки подлинности HTTP в среде тестирования Django
  • Тест покрытия Django для URL-адресов 0%, почему?
  • Как сохранить тестовые данные после завершения тестов Django?
  • Python - лучший язык программирования в мире.