Разница поведения в интерактивном режиме и в тестах - 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'});
             
        });

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5