Loading django/contrib/formtools/tests/wizard/storage.py +22 −1 Original line number Diff line number Diff line from datetime import datetime from importlib import import_module import os import tempfile from django.http import HttpRequest from django.conf import settings from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.core.files.uploadedfile import SimpleUploadedFile temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR')) temp_storage = FileSystemStorage(location=temp_storage_location) def get_request(): Loading Loading @@ -85,3 +92,17 @@ class TestStorage(object): storage.extra_data['test'] = True self.assertTrue('test' in storage.extra_data) def test_reset_deletes_tmp_files(self): request = get_request() storage = self.get_storage()('wizard1', request, temp_storage) step = 'start' file_ = SimpleUploadedFile('file.txt', b'content') storage.set_step_files(step, {'file': file_}) tmp_name = storage.get_step_files(step)['file'].name self.assertTrue(storage.file_storage.exists(tmp_name)) storage.reset() self.assertFalse(storage.file_storage.exists(tmp_name)) django/contrib/formtools/wizard/storage/base.py +5 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,11 @@ class BaseStorage(object): } def reset(self): # Delete temporary files before breaking reference to them. wizard_files = self.data[self.step_files_key] for step_files in six.itervalues(wizard_files): for step_file in six.itervalues(step_files): self.file_storage.delete(step_file['tmp_name']) self.init_data() def _get_current_step(self): Loading docs/ref/contrib/formtools/form-wizard.txt +3 −3 Original line number Diff line number Diff line Loading @@ -629,9 +629,9 @@ storage class <builtin-fs-storage>`):: .. warning:: Please remember to take care of removing old files as the :class:`WizardView` won't remove any files, whether the wizard gets finished correctly or not. Please remember to take care of removing old temporary files, as the :class:`WizardView` will only remove these files if the wizard finishes correctly. Conditionally view/skip specific steps ====================================== Loading Loading
django/contrib/formtools/tests/wizard/storage.py +22 −1 Original line number Diff line number Diff line from datetime import datetime from importlib import import_module import os import tempfile from django.http import HttpRequest from django.conf import settings from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.core.files.uploadedfile import SimpleUploadedFile temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR')) temp_storage = FileSystemStorage(location=temp_storage_location) def get_request(): Loading Loading @@ -85,3 +92,17 @@ class TestStorage(object): storage.extra_data['test'] = True self.assertTrue('test' in storage.extra_data) def test_reset_deletes_tmp_files(self): request = get_request() storage = self.get_storage()('wizard1', request, temp_storage) step = 'start' file_ = SimpleUploadedFile('file.txt', b'content') storage.set_step_files(step, {'file': file_}) tmp_name = storage.get_step_files(step)['file'].name self.assertTrue(storage.file_storage.exists(tmp_name)) storage.reset() self.assertFalse(storage.file_storage.exists(tmp_name))
django/contrib/formtools/wizard/storage/base.py +5 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,11 @@ class BaseStorage(object): } def reset(self): # Delete temporary files before breaking reference to them. wizard_files = self.data[self.step_files_key] for step_files in six.itervalues(wizard_files): for step_file in six.itervalues(step_files): self.file_storage.delete(step_file['tmp_name']) self.init_data() def _get_current_step(self): Loading
docs/ref/contrib/formtools/form-wizard.txt +3 −3 Original line number Diff line number Diff line Loading @@ -629,9 +629,9 @@ storage class <builtin-fs-storage>`):: .. warning:: Please remember to take care of removing old files as the :class:`WizardView` won't remove any files, whether the wizard gets finished correctly or not. Please remember to take care of removing old temporary files, as the :class:`WizardView` will only remove these files if the wizard finishes correctly. Conditionally view/skip specific steps ====================================== Loading