/
test_streams.py
60 lines (43 loc) · 2.34 KB
/
test_streams.py
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import unittest
try:
from unittest.mock import patch
except ImportError:
from mock import patch
import onedrivesdk
from onedrivesdk.http_response import HttpResponse
import json
class TestStreams(unittest.TestCase):
@patch('onedrivesdk.HttpProvider')
@patch('onedrivesdk.AuthProvider')
def test_put(self, MockHttpProvider, MockAuthProvider):
response = HttpResponse(200, None, json.dumps({"name":"test1", "folder":{}, "id":"test!id"}))
instance = MockHttpProvider.return_value
instance.send.return_value = response
instance = MockAuthProvider.return_value
instance.authenticate.return_value = "blah"
instance.authenticate_request.return_value = None
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider()
client = onedrivesdk.OneDriveClient("onedriveurl/", http_provider, auth_provider)
response_item = client.drives["me"].items["root"].children["newFile.txt"].content.request().upload("./myPath/myFile.txt")
assert client.http_provider.send.call_args[1]["path"] == "./myPath/myFile.txt"
assert client.http_provider.send.call_args[0][2] == "onedriveurl/drives/me/items/root/children/newFile.txt/content"
assert all(item in response_item._prop_dict.items() for item in json.loads(response.content).items())
@patch('onedrivesdk.HttpProvider')
@patch('onedrivesdk.AuthProvider')
def test_download(self, MockHttpProvider, MockAuthProvider):
path = "./myPath/myFile.txt"
response = HttpResponse(200, None, None)
instance = MockHttpProvider.return_value
instance.download.return_value = response
instance = MockAuthProvider.return_value
instance.authenticate.return_value = "blah"
instance.authenticate_request.return_value = None
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider()
client = onedrivesdk.OneDriveClient("onedriveurl/", http_provider, auth_provider)
client.drives["me"].items["root"].children["newFile.txt"].content.request().download(path)
assert client.http_provider.download.call_args[0][2] == path
assert client.http_provider.download.call_args[0][1] == "onedriveurl/drives/me/items/root/children/newFile.txt/content"
if __name__ == '__main__':
unittest.main()