Yet more file storage testing cleanup for the sake of buildbots; this should be the last of it, I hope.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9226 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b21ea0a836
commit
d7c829c98e
|
@ -19,7 +19,8 @@ try:
|
|||
except NameError:
|
||||
from django.utils.itercompat import sorted
|
||||
|
||||
temp_storage = FileSystemStorage(tempfile.gettempdir())
|
||||
temp_storage_dir = tempfile.mkdtemp()
|
||||
temp_storage = FileSystemStorage(temp_storage_dir)
|
||||
|
||||
ARTICLE_STATUS = (
|
||||
(1, 'Draft'),
|
||||
|
@ -1251,4 +1252,8 @@ ValidationError: [u'Select a valid choice. z is not one of the available choices
|
|||
>>> core = form.save()
|
||||
>>> core.parent
|
||||
<Inventory: Pear>
|
||||
|
||||
# Clean up
|
||||
>>> import shutil
|
||||
>>> shutil.rmtree(temp_storage_dir)
|
||||
"""}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import os
|
||||
import tempfile
|
||||
import shutil
|
||||
from django.db import models
|
||||
from django.core.files.storage import FileSystemStorage
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
temp_storage = FileSystemStorage(tempfile.gettempdir())
|
||||
temp_storage_dir = tempfile.mkdtemp()
|
||||
temp_storage = FileSystemStorage(temp_storage_dir)
|
||||
|
||||
# Test for correct behavior of width_field/height_field.
|
||||
# Of course, we can't run this without PIL.
|
||||
|
@ -64,5 +66,7 @@ False
|
|||
>>> _ = p3.mugshot.size
|
||||
>>> hasattr(p3.mugshot, '_file')
|
||||
False
|
||||
|
||||
>>> shutil.rmtree(temp_storage_dir)
|
||||
"""}
|
||||
|
|
@ -88,10 +88,12 @@ u'custom_storage.2'
|
|||
# without threading.
|
||||
import os
|
||||
import time
|
||||
import shutil
|
||||
import tempfile
|
||||
from unittest import TestCase
|
||||
from django.conf import settings
|
||||
from django.core.files.base import ContentFile
|
||||
from models import temp_storage
|
||||
from django.core.files.storage import FileSystemStorage
|
||||
try:
|
||||
import threading
|
||||
except ImportError:
|
||||
|
@ -104,29 +106,38 @@ class SlowFile(ContentFile):
|
|||
|
||||
class FileSaveRaceConditionTest(TestCase):
|
||||
def setUp(self):
|
||||
self.storage_dir = tempfile.mkdtemp()
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
self.thread = threading.Thread(target=self.save_file, args=['conflict'])
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.storage_dir)
|
||||
|
||||
def save_file(self, name):
|
||||
name = temp_storage.save(name, SlowFile("Data"))
|
||||
name = self.storage.save(name, SlowFile("Data"))
|
||||
|
||||
def test_race_condition(self):
|
||||
self.thread.start()
|
||||
name = self.save_file('conflict')
|
||||
self.thread.join()
|
||||
self.assert_(temp_storage.exists('conflict'))
|
||||
self.assert_(temp_storage.exists('conflict_'))
|
||||
temp_storage.delete('conflict')
|
||||
temp_storage.delete('conflict_')
|
||||
self.assert_(self.storage.exists('conflict'))
|
||||
self.assert_(self.storage.exists('conflict_'))
|
||||
self.storage.delete('conflict')
|
||||
self.storage.delete('conflict_')
|
||||
|
||||
class FileStoragePermissions(TestCase):
|
||||
def setUp(self):
|
||||
self.old_perms = settings.FILE_UPLOAD_PERMISSIONS
|
||||
settings.FILE_UPLOAD_PERMISSIONS = 0666
|
||||
|
||||
def test_file_upload_permissions(self):
|
||||
name = temp_storage.save("the_file", ContentFile("data"))
|
||||
actual_mode = os.stat(temp_storage.path(name))[0] & 0777
|
||||
self.assertEqual(actual_mode, 0666)
|
||||
|
||||
self.storage_dir = tempfile.mkdtemp()
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
|
||||
def tearDown(self):
|
||||
settings.FILE_UPLOAD_PERMISSIONS = self.old_perms
|
||||
settings.FILE_UPLOAD_PERMISSIONS = self.old_perms
|
||||
shutil.rmtree(self.storage_dir)
|
||||
|
||||
def test_file_upload_permissions(self):
|
||||
name = self.storage.save("the_file", ContentFile("data"))
|
||||
actual_mode = os.stat(self.storage.path(name))[0] & 0777
|
||||
self.assertEqual(actual_mode, 0666)
|
||||
|
||||
|
|
Loading…
Reference in New Issue