Added missing path() method
This commit is contained in:
parent
845762400f
commit
4284b4a05f
@ -45,18 +45,21 @@ class MultiStorage(Storage):
|
|||||||
def _proxy(self, method, name, *args, **kwargs):
|
def _proxy(self, method, name, *args, **kwargs):
|
||||||
storage, p = self.split(name)
|
storage, p = self.split(name)
|
||||||
result = getattr(self.get_storage(storage), method)(p, *args, **kwargs)
|
result = getattr(self.get_storage(storage), method)(p, *args, **kwargs)
|
||||||
logger.debug("Proxy: %s(%r, *%r, **%r) => %r", method, name, args, kwargs, result)
|
logger.debug("Proxy: %s(%r, *%r, **%r) => %r", method, p, args, kwargs, result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def _proxy_name(self, method, name, *args, **kwargs):
|
def _proxy_name(self, method, name, *args, **kwargs):
|
||||||
storage, p = self.split(name)
|
storage, p = self.split(name)
|
||||||
result = getattr(self.get_storage(storage), method)(p, *args, **kwargs)
|
result = getattr(self.get_storage(storage), method)(p, *args, **kwargs)
|
||||||
logger.debug("Proxy: %s(%r, *%r, **%r) => %s:%s", method, name, args, kwargs, storage, result)
|
logger.debug("Proxy: %s(%r, *%r, **%r) => %s:%s", method, p, args, kwargs, storage, result)
|
||||||
return self.join(storage, result)
|
return self.join(storage, result)
|
||||||
|
|
||||||
def _open(self, name, mode='rb'):
|
def _open(self, name, mode='rb'):
|
||||||
return self._proxy('open', name, mode)
|
return self._proxy('open', name, mode)
|
||||||
|
|
||||||
|
def path(self, name):
|
||||||
|
return self._proxy('path', name)
|
||||||
|
|
||||||
def save(self, name, content, max_length=None):
|
def save(self, name, content, max_length=None):
|
||||||
return self._proxy_name('save', name, content, max_length)
|
return self._proxy_name('save', name, content, max_length)
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from django.test import TestCase
|
|||||||
from byostorage.multi import MultiStorage
|
from byostorage.multi import MultiStorage
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
|
||||||
class MultiStorageTestCase(TestCase):
|
class MultiStorageTestCase(TestCase):
|
||||||
|
|
||||||
@ -34,3 +35,10 @@ class MultiStorageTestCase(TestCase):
|
|||||||
})
|
})
|
||||||
|
|
||||||
self.assertEqual(ms.url('https://google.com'), 'https://google.com')
|
self.assertEqual(ms.url('https://google.com'), 'https://google.com')
|
||||||
|
|
||||||
|
def test_local_methods(self):
|
||||||
|
ms = MultiStorage({
|
||||||
|
'local': {'storage': 'django.core.files.storage.FileSystemStorage', 'location': 'local_store'}
|
||||||
|
})
|
||||||
|
|
||||||
|
self.assertEqual(ms.path('local:foo/bar.txt'), os.path.realpath('local_store/foo/bar.txt'))
|
||||||
Loading…
x
Reference in New Issue
Block a user