Commit f00a97c8 by rfkelly0

make django_storage.FSStorage raise OSError, not FSError

parent 41459867
...@@ -9,8 +9,8 @@ Use an FS object for Django File Storage ...@@ -9,8 +9,8 @@ Use an FS object for Django File Storage
from django.conf import settings from django.conf import settings
from django.core.files.storage import Storage from django.core.files.storage import Storage
from fs.path import abspath from fs.path import abspath, dirname
from fs.errors import convert_fs_errors
class FSStorage(Storage): class FSStorage(Storage):
"""Expose an FS object as a Django File Storage object.""" """Expose an FS object as a Django File Storage object."""
...@@ -34,19 +34,25 @@ class FSStorage(Storage): ...@@ -34,19 +34,25 @@ class FSStorage(Storage):
raise NotImplementedError raise NotImplementedError
return path return path
@convert_fs_errors
def size(self,name): def size(self,name):
return self.fs.getsize(name) return self.fs.getsize(name)
@convert_fs_errors
def url(self,name): def url(self,name):
return self.base_url + abspath(name) return self.base_url + abspath(name)
@convert_fs_errors
def _open(self,name,mode): def _open(self,name,mode):
return selfs.fs.open(name,mode) return self.fs.open(name,mode)
@convert_fs_errors
def _save(self,name,content): def _save(self,name,content):
self.fs.makedir(dirname(name),allow_recreate=True,recursive=True)
self.fs.setcontents(name,content) self.fs.setcontents(name,content)
return name return name
@convert_fs_errors
def delete(self,name): def delete(self,name):
try: try:
self.fs.remove(name) self.fs.remove(name)
......
...@@ -40,7 +40,7 @@ class LazyFS(WrapFS): ...@@ -40,7 +40,7 @@ class LazyFS(WrapFS):
self._lazy_creation_lock = Lock() self._lazy_creation_lock = Lock()
def _get_wrapped_fs(self): def _get_wrapped_fs(self):
"""Obtain the wrapped FS instance, created it if necessary.""" """Obtain the wrapped FS instance, creating it if necessary."""
try: try:
return self.__dict__["wrapped_fs"] return self.__dict__["wrapped_fs"]
except KeyError: except KeyError:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment