diff options
author | drebs <drebs@leap.se> | 2017-12-19 18:00:23 -0200 |
---|---|---|
committer | drebs <drebs@leap.se> | 2017-12-26 09:04:50 -0200 |
commit | 5a3d6cd05e8f12aba2527b2d711cd0aa7a27f3e8 (patch) | |
tree | b2f0b7b55feda0f3cd7ddd1e97a0975f2c1af794 /tests/blobs | |
parent | 0cf535b26c8989a60df646f64dfcb14b59de1a86 (diff) |
[feature] add ranges to blobs backend
Diffstat (limited to 'tests/blobs')
-rw-r--r-- | tests/blobs/test_fs_backend.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/tests/blobs/test_fs_backend.py b/tests/blobs/test_fs_backend.py index 5c086a51..2485ccd1 100644 --- a/tests/blobs/test_fs_backend.py +++ b/tests/blobs/test_fs_backend.py @@ -20,6 +20,7 @@ Tests for blobs backend on server side. from twisted.trial import unittest from twisted.internet import defer from twisted.web.client import FileBodyProducer +from twisted.web.test.requesthelper import DummyRequest from leap.common.files import mkdir_p from leap.soledad.server import _blobs from mock import Mock @@ -61,18 +62,18 @@ class FilesystemBackendTestCase(unittest.TestCase): self.assertEquals(10, size) @pytest.mark.usefixtures("method_tmpdir") - @mock.patch('leap.soledad.server._blobs.fs_backend.open') @mock.patch('leap.soledad.server._blobs.fs_backend' '.FilesystemBlobsBackend._get_path') @defer.inlineCallbacks - def test_read_blob(self, get_path, open): - get_path.return_value = 'path' - open.return_value = io.BytesIO('content') + def test_read_blob(self, get_path): + path = os.path.join(self.tempdir, 'blob') + with open(path, 'w') as f: + f.write('bl0b') + get_path.return_value = path backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir) - consumer = Mock() + consumer = DummyRequest(['']) yield backend.read_blob('user', 'blob_id', consumer) - consumer.write.assert_called_with('content') - get_path.assert_called_once_with('user', 'blob_id', '') + self.assertEqual(['bl0b'], consumer.written) @pytest.mark.usefixtures("method_tmpdir") @mock.patch.object(os.path, 'isfile') @@ -246,3 +247,13 @@ class FilesystemBackendTestCase(unittest.TestCase): count = yield backend.count('user', namespace='xfiles') self.assertEqual(2, count) + + @pytest.mark.usefixtures("method_tmpdir") + @defer.inlineCallbacks + def test_read_range(self): + backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir) + producer = FileBodyProducer(io.BytesIO("0123456789")) + yield backend.write_blob('user', 'blob-id', producer) + consumer = DummyRequest(['']) + yield backend.read_blob('user', 'blob-id', consumer, range=(1, 3)) + self.assertEqual(['12'], consumer.written) |