From 9628d5fa3ed7bdfd046aee641a8d51605c15bd71 Mon Sep 17 00:00:00 2001
From: Victor Shyba <victor1984@riseup.net>
Date: Mon, 20 Mar 2017 21:38:22 -0300
Subject: [test] use mock instead of directly patching

---
 testing/tests/blobs/test_blobs.py      | 17 ++++++++++-------
 testing/tests/blobs/test_fs_backend.py | 10 ++++++----
 2 files changed, 16 insertions(+), 11 deletions(-)

(limited to 'testing/tests/blobs')

diff --git a/testing/tests/blobs/test_blobs.py b/testing/tests/blobs/test_blobs.py
index a36bad1e..77eff6cc 100644
--- a/testing/tests/blobs/test_blobs.py
+++ b/testing/tests/blobs/test_blobs.py
@@ -19,10 +19,11 @@ Tests for cryptographic related stuff.
 """
 from twisted.trial import unittest
 from twisted.internet import defer
-from leap.soledad.client import _blobs
-from leap.soledad.client._blobs import DecrypterBuffer
+from leap.soledad.client._blobs import DecrypterBuffer, BlobManager
 from leap.soledad.client import _crypto
 from io import BytesIO
+from mock import Mock
+import mock
 
 
 class BlobTestCase(unittest.TestCase):
@@ -49,20 +50,22 @@ class BlobTestCase(unittest.TestCase):
         fd, size = buf.close()
         assert fd.getvalue() == 'rosa de foc'
 
+    @defer.inlineCallbacks
     def test_blob_manager_encrypted_upload(self):
 
         @defer.inlineCallbacks
-        def _check_result(uri, data):
+        def _check_result(uri, data, *args, **kwargs):
             decryptor = _crypto.BlobDecryptor(
                 self.doc_info, data,
                 armor=False,
                 secret=self.secret)
             decrypted = yield decryptor.decrypt()
             assert decrypted.getvalue() == 'up and up'
+            defer.returnValue(Mock(code=200))
 
-        manager = _blobs.BlobManager(
-            '', 'http://127.0.0.1/', self.secret, self.secret, 'user')
+        manager = BlobManager('', '', self.secret, self.secret, 'user')
         doc_id, rev = self.doc_info.doc_id, self.doc_info.rev
         fd = BytesIO('up and up')
-        manager._client.put = _check_result
-        return manager._encrypt_and_upload('blob_id', doc_id, rev, fd)
+        with mock.patch('leap.soledad.client._blobs.treq.put') as mock_treq:
+            mock_treq.side_effect = _check_result
+            yield manager._encrypt_and_upload('blob_id', doc_id, rev, fd)
diff --git a/testing/tests/blobs/test_fs_backend.py b/testing/tests/blobs/test_fs_backend.py
index aaf5f4c3..fd38336d 100644
--- a/testing/tests/blobs/test_fs_backend.py
+++ b/testing/tests/blobs/test_fs_backend.py
@@ -29,8 +29,9 @@ import pytest
 
 class FilesystemBackendTestCase(unittest.TestCase):
 
-    def test_tag_header(self):
-        _blobs.open = lambda x: BytesIO('A' * 40 + 'B' * 16)
+    @mock.patch.object(_blobs, 'open')
+    def test_tag_header(self, open_mock):
+        open_mock.return_value = BytesIO('A' * 40 + 'B' * 16)
         expected_tag = base64.urlsafe_b64encode('B' * 16)
         expected_method = Mock()
         backend = _blobs.FilesystemBlobsBackend()
@@ -39,9 +40,10 @@ class FilesystemBackendTestCase(unittest.TestCase):
 
         expected_method.assert_called_once_with('Tag', [expected_tag])
 
-    def test_read_blob(self):
+    @mock.patch.object(_blobs.static, 'File')
+    def test_read_blob(self, file_mock):
         render_mock = Mock()
-        _blobs.static.File = Mock(return_value=render_mock)
+        file_mock.return_value = render_mock
         backend = _blobs.FilesystemBlobsBackend()
         request = object()
         backend._get_path = Mock(return_value='path')
-- 
cgit v1.2.3