Django Tests(TestCase), проблемы с fixtures, c reverse
В тесты добавляю Fixtures, и при запуске тестов выдает ошибку:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Пытался кодировать в другие форматы - ничего не меняется.
Вторая проблема: использую reverse
, передавая name='url'
и kwargs
для передачи id
, так как url выглядит так:
path('category/<int:category_id>/', category_recipes, name='category_recipes')
Выдает ошибку:
AttributeError: 'NoneType' object has no attribute 'id'
Код теста выглядит так:
class RecipesViewTestCase(TestCase):
fixtures = ['categories.json', 'recipes.json']
def setUp(self):
self.recipes = RecipesModel.objects.all()
def test_list_with_category(self):
categories = CategoriesModel.objects.first()
path = reverse('category', kwargs={'category_id': categories.id})
response = self.client.get(path)
self.assertEqual(
list(response.context_data['category']),
list(self.recipes.filter(category_id=categories.id))
)
Источник: Stack Overflow на русском