mirror of https://github.com/django/django.git
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:
|
except NameError:
|
||||||
from django.utils.itercompat import sorted
|
from django.utils.itercompat import sorted
|
||||||
|
|
||||||
temp_storage = FileSystemStorage(tempfile.gettempdir())
|
temp_storage_dir = tempfile.mkdtemp()
|
||||||
|
temp_storage = FileSystemStorage(temp_storage_dir)
|
||||||
|
|
||||||
ARTICLE_STATUS = (
|
ARTICLE_STATUS = (
|
||||||
(1, 'Draft'),
|
(1, 'Draft'),
|
||||||
|
@ -1251,4 +1252,8 @@ ValidationError: [u'Select a valid choice. z is not one of the available choices
|
||||||
>>> core = form.save()
|
>>> core = form.save()
|
||||||
>>> core.parent
|
>>> core.parent
|
||||||
<Inventory: Pear>
|
<Inventory: Pear>
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
>>> import shutil
|
||||||
|
>>> shutil.rmtree(temp_storage_dir)
|
||||||
"""}
|
"""}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import shutil
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
from django.core.files.base import ContentFile
|
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.
|
# Test for correct behavior of width_field/height_field.
|
||||||
# Of course, we can't run this without PIL.
|
# Of course, we can't run this without PIL.
|
||||||
|
@ -64,5 +66,7 @@ False
|
||||||
>>> _ = p3.mugshot.size
|
>>> _ = p3.mugshot.size
|
||||||
>>> hasattr(p3.mugshot, '_file')
|
>>> hasattr(p3.mugshot, '_file')
|
||||||
False
|
False
|
||||||
|
|
||||||
|
>>> shutil.rmtree(temp_storage_dir)
|
||||||
"""}
|
"""}
|
||||||
|
|
|
@ -88,10 +88,12 @@ u'custom_storage.2'
|
||||||
# without threading.
|
# without threading.
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import shutil
|
||||||
|
import tempfile
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from models import temp_storage
|
from django.core.files.storage import FileSystemStorage
|
||||||
try:
|
try:
|
||||||
import threading
|
import threading
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -104,29 +106,38 @@ class SlowFile(ContentFile):
|
||||||
|
|
||||||
class FileSaveRaceConditionTest(TestCase):
|
class FileSaveRaceConditionTest(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
self.storage_dir = tempfile.mkdtemp()
|
||||||
|
self.storage = FileSystemStorage(self.storage_dir)
|
||||||
self.thread = threading.Thread(target=self.save_file, args=['conflict'])
|
self.thread = threading.Thread(target=self.save_file, args=['conflict'])
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
shutil.rmtree(self.storage_dir)
|
||||||
|
|
||||||
def save_file(self, name):
|
def save_file(self, name):
|
||||||
name = temp_storage.save(name, SlowFile("Data"))
|
name = self.storage.save(name, SlowFile("Data"))
|
||||||
|
|
||||||
def test_race_condition(self):
|
def test_race_condition(self):
|
||||||
self.thread.start()
|
self.thread.start()
|
||||||
name = self.save_file('conflict')
|
name = self.save_file('conflict')
|
||||||
self.thread.join()
|
self.thread.join()
|
||||||
self.assert_(temp_storage.exists('conflict'))
|
self.assert_(self.storage.exists('conflict'))
|
||||||
self.assert_(temp_storage.exists('conflict_'))
|
self.assert_(self.storage.exists('conflict_'))
|
||||||
temp_storage.delete('conflict')
|
self.storage.delete('conflict')
|
||||||
temp_storage.delete('conflict_')
|
self.storage.delete('conflict_')
|
||||||
|
|
||||||
class FileStoragePermissions(TestCase):
|
class FileStoragePermissions(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.old_perms = settings.FILE_UPLOAD_PERMISSIONS
|
self.old_perms = settings.FILE_UPLOAD_PERMISSIONS
|
||||||
settings.FILE_UPLOAD_PERMISSIONS = 0666
|
settings.FILE_UPLOAD_PERMISSIONS = 0666
|
||||||
|
self.storage_dir = tempfile.mkdtemp()
|
||||||
def test_file_upload_permissions(self):
|
self.storage = FileSystemStorage(self.storage_dir)
|
||||||
name = temp_storage.save("the_file", ContentFile("data"))
|
|
||||||
actual_mode = os.stat(temp_storage.path(name))[0] & 0777
|
|
||||||
self.assertEqual(actual_mode, 0666)
|
|
||||||
|
|
||||||
def tearDown(self):
|
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