Попытка проверить контекст ответа в Django TestCase с помощью assertQuerysetEqual
, но это не удалось.
Я пробовал печатать счетчик Country.objects.all().count()
и response.context['countries'].count()
.оба возвращают 1, когда я создаю одну запись в начале теста.
Также пробовал ordered=True
в методе подтверждения, но не все равно не прошел тест.Я что-то упустил или мне нужно сделать это по-другому?
Просмотр, который возвращает ответ
class CountriesListView(generic.ListView):
model = Country
template_name = 'management/countries/countries.html'
context_object_name = 'countries'
Тест с использованием
class CountryTest(TestCase):
def setUp(self):
self.countries_list_url = '/countries'
def test_response_returns_countries_context(self):
Country.objects.create(
name='India',
iso_3166_1='IN'
)
response = self.client.get(self.countries_list_url)
self.assertQuerysetEqual(Country.objects.all(), response.context['countries'])
Ошибка, которую я получаю
AssertionError: Lists differ: ['<Country: Country object (1)>'] != [<Country: Country object (1)>]
First differing element 0:
'<Country: Country object (1)>'
<Country: Country object (1)>
- ['<Country: Country object (1)>']
? - -
+ [<Country: Country object (1)>]
Получение такой же ошибки для
self.assertQuerysetEqual(Country.objects.all(), Country.objects.all())