Последующие Unittests Django выдают "MySQLdb.OperationalError: (2006, '')".
Я тестирую метод, создающий HttpReponse и передающий CSV файл.
def _generate_csv(self):
filename = self._get_filename('csv')
# Create the HttpResponse object with the appropriate CSV header.
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=%s' % filename
writer = csv.DictWriter(response, csv_header_list, delimiter=";")
writer.writeheader()
for obj in object_list:
writer.writerow(csv_dict)
response.close()
return response
При выполнении моих unittests, все тесты до этого теста проходят, но все последующие проваливаются с этой непонятной ошибкой:
MySQLdb.OperationalError: (2006, '')
Есть идеи, почему тестирование этого метода ломает другие тесты?
Thx!
Ок, нашел! Закрытие ответа убивает соединение с базой данных (2206 означает "База данных исчезла")
response.close()
Просто издевайтесь над близостью в своих тестах:
@mock.patch.object(HttpResponse, 'close')
def test_generate_csv_case_x(self, *args):
...