Последующие 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):
    ...
Вернуться на верх