1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
import unittest
import responses
from tusclient import client
from tusclient.uploader import Uploader, AsyncUploader
class TusClientTest(unittest.TestCase):
def setUp(self):
self.client = client.TusClient('http://tusd.tusdemo.net/files/',
headers={'foo': 'bar'})
def test_instance_attributes(self):
self.assertEqual(self.client.url, 'http://tusd.tusdemo.net/files/')
self.assertEqual(self.client.headers, {'foo': 'bar'})
def test_set_headers(self):
self.client.set_headers({'foo': 'bar tender'})
self.assertEqual(self.client.headers, {'foo': 'bar tender'})
# uploader headers must update when client headers change
self.client.set_headers({'food': 'at the bar'})
self.assertEqual(self.client.headers, {'foo': 'bar tender', 'food': 'at the bar'})
@responses.activate
def test_uploader(self):
url = 'http://tusd.tusdemo.net/files/15acd89eabdf5738ffc'
responses.add(responses.HEAD, url,
adding_headers={"upload-offset": "0"})
uploader = self.client.uploader('./LICENSE', url=url)
self.assertIsInstance(uploader, Uploader)
self.assertEqual(uploader.client, self.client)
@responses.activate
def test_async_uploader(self):
url = 'http://tusd.tusdemo.net/files/15acd89eabdf5738ffc'
responses.add(responses.HEAD, url,
adding_headers={"upload-offset": "0"})
async_uploader = self.client.async_uploader('./LICENSE', url=url)
self.assertIsInstance(async_uploader, AsyncUploader)
self.assertEqual(async_uploader.client, self.client)
|