Разница поведения в интерактивном режиме и в тестах - Python
Формулировка задачи:
Django 1.11.7
django_cleanup 1.0.1
Django-cleanup подчищает старые файлы при их удалении и изменении. Модель:Сейчас в MEDIA_ROOT лежит только файлик cache.txt. Просто файлик, будем его использовать в тестах.
Пока создадим экземпляр класса в интерпретаторе интерактивно.
>>> from django.core.files import File
>>> file = File(open('/home/michael/PycharmProjects/experiment/media/cache.txt', 'r'))
>>> fm = FileModel.objects.create(file=file)
В MEDIA_ROOT появился еще один файлик cache_JO2jFJC.txt.
Грохнем его программно:
>>> fm.delete()
(1, {'files.FileModel': 1})
В MEDIA_ROOT удалился cache_JO2jFJC.txt. Сейчас там опять лежит только cache.txt.
Таким образом, мы убедились, что django-cleanup работает.
А теперь то же самое сделаем в тесте. При этом у нас поставлена точка останова - см. комментарий в примере.
На точке останова смотрим: появился файлик cache_D9IuGrI.txt.
Продолжаем отладку.
Файл остался. Он не удалился.
Вот ссылка на приложение https://github.com/un1t/django-cleanup
А вот прямая ссылка на код обработчиков:
https://github.com/un1t/django-clean...up/handlers.py
Обработчики ловят сигналы. Вроде, все логично.
Как же так получается, что в интерпретаторе у меня все работает - файл удаляется. А через тесты не удаляется?
Решение задачи: «Разница поведения в интерактивном режиме и в тестах»
textual
Листинг программы
$(document).ready(function(){ namespace = '/test'; var socket = io.connect('http://' + document.domain + ':' + location.port + namespace); socket.on('connect', function() { // действия при создании подключения }); socket.on('disconnect', function() { // действия при разрыве подключения }); socket.on('my response', function(msg) { // обработчик на то что пришлет сервер }); //отправка данных от въюхи пользователю //socket.emit('url socket', {data: 'val'}); });
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д