26
26
from unittest import TestCase
27
27
from os import urandom
28
28
from base64 import b32encode
30
from dmedia import transfers
29
from multiprocessing import current_process
32
from dmedia import transfers, schema, filestore
34
from .helpers import DummyQueue, mov_hash, mov_size, mov_leaves
35
from .couch import CouchCase
225
230
str(cm.exception),
226
231
'TransferBackend.upload()'
235
class TestTransferWorker(CouchCase):
236
klass = transfers.TransferWorker
239
super(TestTransferWorker, self).setUp()
240
self.q = DummyQueue()
241
self.pid = current_process().pid
244
self.store_id = schema.random_id()
245
key = ('upload', mov_hash, self.store_id)
246
return self.klass(self.env, self.q, key, (mov_hash, self.store_id))
250
self.assertIsInstance(inst.filestore, filestore.FileStore)
251
self.assertEqual(inst.filestore.parent, self.env['filestore']['path'])
252
self.assertEqual(inst.filestore_id, self.env['filestore']['_id'])
254
def test_init_file(self):
256
doc = schema.create_file(mov_size, mov_leaves, self.store_id)
257
self.assertEqual(doc['_id'], mov_hash)
259
self.assertIsNone(inst.init_file(mov_hash))
260
self.assertEqual(inst.file_id, mov_hash)
262
inst.file.pop('_attachments')['leaves']['data'],
263
doc.pop('_attachments')['leaves']['data']
265
self.assertEqual(inst.file, doc)
266
self.assertEqual(inst.file_size, mov_size)
268
def test_init_remote(self):
271
'_id': self.store_id,
273
'type': 'dmedia/store',
280
self.assertIsNone(inst.init_remote(self.store_id))
281
self.assertEqual(inst.remote_id, self.store_id)
282
self.assertEqual(inst.remote, doc)