diff options
author | Victor Shyba <victor1984@riseup.net> | 2017-03-17 07:05:01 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2017-04-04 18:27:35 +0200 |
commit | 7dea944dc009c592e987f977d6224c8f5a565015 (patch) | |
tree | 1379549d75eba386648f13fa7c620b782c5e1fa2 | |
parent | 4da20addb409c6999c10bdacece7bb5e786ee69e (diff) |
[test] check that write respects quota
-rw-r--r-- | testing/tests/blobs/test_fs_backend.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/testing/tests/blobs/test_fs_backend.py b/testing/tests/blobs/test_fs_backend.py index ee388561..90b38037 100644 --- a/testing/tests/blobs/test_fs_backend.py +++ b/testing/tests/blobs/test_fs_backend.py @@ -21,6 +21,8 @@ from twisted.trial import unittest from leap.soledad.server import _blobs from io import BytesIO from mock import Mock +import mock +import os import base64 import pytest @@ -50,9 +52,26 @@ class FilesystemBackendTestCase(unittest.TestCase): _blobs.static.File.assert_called_once_with('path', defaultType=ctype) render_mock.render_GET.assert_called_once_with(request) - def test_cannot_overwrite(self): - _blobs.os.path.isfile = lambda path: True + @mock.patch.object(os.path, 'isfile') + def test_cannot_overwrite(self, isfile): + isfile.return_value = True backend = _blobs.FilesystemBlobsBackend() backend._get_path = Mock(return_value='path') with pytest.raises(_blobs.BlobAlreadyExists): backend.write_blob('user', 'blob_id', 'request') + + @pytest.mark.usefixtures("method_tmpdir") + @mock.patch.object(os.path, 'isfile') + def test_write_cannot_exceed_quota(self, isfile): + isfile.return_value = False + backend = _blobs.FilesystemBlobsBackend() + backend._get_path = Mock(return_value=self.tempdir) + request = Mock() + + backend.get_total_storage = lambda x: 100 + backend.quota = 90 + backend.write_blob('user', 'blob_id', request) + + request.setResponseCode.assert_called_once_with(507) + request.write.assert_called_once_with('Quota Exceeded!') + request.finish.assert_called_once() |