Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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())
def test_polling_background_method(self, MockHttpProvider, MockAuthProvider):
"""
Test that polling in the background actually functions as it should and polls
on a seperate thread.
"""
response = HttpResponse(301, {"Location": "statusLocation"}, "")
instance_http = MockHttpProvider.return_value
instance_http.send.return_value = response
instance_auth = MockAuthProvider.return_value
instance_auth.authenticate.return_value = "blah"
instance_auth.authenticate_request.return_value = None
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider()
client = onedrivesdk.OneDriveClient("onedriveurl/", http_provider, auth_provider)
ref = ItemReference()
ref.id = "testing!id"
mock = Mock()
copy_operation = client.drives["me"].items["testitem!id"].copy(parent_reference=ref, name="newName").request().post()
response = HttpResponse(200, None, json.dumps({"operation":"copy", "percentageComplete":0, "status": "In progress"}))
instance_http.send.return_value = response
time.sleep(0.2)
assert copy_operation.item is None
response = HttpResponse(200, None, json.dumps({"id" : "testitem!id", "name": "newName"}))
def test_page_creation(self, MockHttpProvider, MockAuthProvider):
"""
Test page creation when there is no nextLink attached to the collection
"""
response = HttpResponse(200, None, json.dumps({"value":[{"name":"test1", "folder":{}}, {"name":"test2"}]}))
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)
items = client.drives["me"].items["root"].children.request().get()
assert len(items) == 2
assert isinstance(items, ChildrenCollectionPage)
assert items[0].name == "test1"
assert isinstance(items[0].folder, Folder)
assert items[1].folder is None
def test_method_query_format(self, MockHttpProvider, MockAuthProvider):
"""
Test that the parameters are correctly entered into the query string
of the request for methods that require this
"""
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider()
client = onedrivesdk.OneDriveClient("onedriveurl/", http_provider, auth_provider)
changes_request = client.drives["me"].items["testitem!id"].delta(token="token").request()
assert urlparse(changes_request.request_url).path == "onedriveurl/drives/me/items/testitem!id/view.delta"
query_dict = dict(parse_qsl(urlparse(changes_request.request_url).query))
expected_dict = {"token":"token"}
assert all(item in query_dict.items() for item in expected_dict.items())
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"
def test_paging(self, MockHttpProvider, MockAuthProvider):
"""
Test paging of a file in situations where more than one page is available
"""
response = HttpResponse(200, None, json.dumps({"@odata.nextLink":"testing", "value":[{"name":"test1", "folder":{}}, {"name":"test2"}]}))
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)
items = client.drives["me"].items["root"].children.request().get()
assert items._next_page_link is not None
request = onedrivesdk.ChildrenCollectionRequest.get_next_page_request(items, client)
assert isinstance(request, ChildrenCollectionRequest)
assert isinstance(request.get(), ChildrenCollectionPage)
def test_path_creation_with_query(self, MockHttpProvider, MockAuthProvider):
"""
Tests that a path is created with the correct query parameters
"""
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider()
client = onedrivesdk.OneDriveClient("onedriveurl/", http_provider, auth_provider)
request = client.drives["me"].items["root"].children.request(top=3, select="test")
query_dict = dict(parse_qsl(urlparse(request.request_url).query))
expected_dict = {"select":"test", "top":"3"}
assert all(item in query_dict.items() for item in expected_dict.items())
def __init_service(self):
api_base_url = self.__config.get('onedrive', 'onedrive.api_base_url')
client_id = self.__config.get('onedrive', 'onedrive.client_id')
session_file = self.__config.get('onedrive', 'onedrive.session_file')
if not exists(session_file):
self.__save_credentials(session_file)
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider(http_provider,
client_id,
self.__scopes)
# Load the session
auth_provider.load_session(path=session_file)
auth_provider.refresh_token()
self.__onedrive_service = onedrivesdk.OneDriveClient(api_base_url, auth_provider, http_provider)
def __init__(self):
proxies = getproxies()
if len(proxies) == 0:
http_provider = onedrivesdk.HttpProvider()
else:
from onedrivesdk.helpers.http_provider_with_proxy import HttpProviderWithProxy
http_provider = HttpProviderWithProxy(proxies, verify_ssl=True)
auth_provider = onedrivesdk.AuthProvider(http_provider=http_provider,
client_id=self.APP_CLIENT_ID,
session_type=od_api_session.OneDriveAPISession,
scopes=self.APP_SCOPES)
self.client = onedrivesdk.OneDriveClient(self.APP_BASE_URL, auth_provider, http_provider)