Skip to content

Commit 020c8c8

Browse files
vvgrem@gmail.comvvgrem@gmail.com
authored andcommitted
#302: passing auth context into ClientContext
1 parent f85a588 commit 020c8c8

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

office365/sharepoint/client_context.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ def __init__(self, base_url, auth_context=None):
2929
base_url = base_url[:len(base_url) - 1]
3030
if auth_context is None:
3131
self._auth_context = AuthenticationContext(url=base_url)
32+
else:
33+
self._auth_context = auth_context
3234
super(ClientContext, self).__init__()
3335
self.__web = None
3436
self.__site = None

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
setup(
1212
name="Office365-REST-Python-Client",
13-
version="2.3.0",
13+
version="2.3.0.1",
1414
author="Vadim Gremyachev",
1515
author_email="vvgrem@gmail.com",
1616
maintainer="Konrad Gądek, Domenico Di Nicola",

tests/sharepoint/test_client.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from unittest import TestCase
22

3+
from office365.runtime.auth.authentication_context import AuthenticationContext
34
from office365.runtime.client_value_collection import ClientValueCollection
45
from office365.sharepoint.tenant.administration.secondary_administrators_fields_data import \
56
SecondaryAdministratorsFieldsData
@@ -9,7 +10,6 @@
910
from office365.runtime.auth.client_credential import ClientCredential
1011
from office365.runtime.auth.providers.acs_token_provider import ACSTokenProvider
1112
from office365.runtime.auth.providers.saml_token_provider import SamlTokenProvider
12-
from office365.runtime.auth.token_response import TokenResponse
1313
from office365.runtime.auth.user_credential import UserCredential
1414
from office365.runtime.http.request_options import RequestOptions
1515
from office365.sharepoint.client_context import ClientContext
@@ -25,26 +25,32 @@ def test1_connect_with_app_principal(self):
2525
settings.get('client_credentials').get('client_secret'))
2626
ctx = ClientContext(settings['url']).with_credentials(credentials)
2727
self.assertIsInstance(ctx.authentication_context._provider, ACSTokenProvider)
28-
# self.assertIsInstance(ctx.authentication_context.provider.token, TokenResponse)
2928

30-
def test2_connect_with_user_credentials(self):
29+
def test2_connect_with_app_principal_alt(self):
30+
context_auth = AuthenticationContext(url=settings.get('url'))
31+
context_auth.acquire_token_for_app(client_id=settings.get('client_credentials').get('client_id'),
32+
client_secret=settings.get('client_credentials').get('client_secret'))
33+
ctx = ClientContext(settings.get('url'), context_auth)
34+
self.assertIsInstance(ctx.authentication_context._provider, ACSTokenProvider)
35+
36+
def test4_connect_with_user_credentials(self):
3137
ctx = ClientContext(settings['url']).with_credentials(user_credentials)
3238
self.assertIsInstance(ctx.authentication_context._provider, SamlTokenProvider)
3339

34-
def test3_init_from_url(self):
40+
def test5_init_from_url(self):
3541
ctx = ClientContext.from_url(settings['url']).with_credentials(user_credentials)
3642
web = ctx.web.get().execute_query()
3743
self.assertIsNotNone(web.url)
3844

39-
def test4_connect_with_client_cert(self):
45+
def test6_connect_with_client_cert(self):
4046
pass
4147

42-
def test5_construct_get_request(self):
48+
def test7_construct_get_request(self):
4349
client = ClientContext(settings['url']).with_credentials(user_credentials)
4450
request = client.web.currentUser.get().build_request()
4551
self.assertIsInstance(request, RequestOptions)
4652

47-
def test7_execute_get_batch_request(self):
53+
def test8_execute_get_batch_request(self):
4854
client = ClientContext(settings['url']).with_credentials(user_credentials)
4955
current_user = client.web.currentUser
5056
client.load(current_user)
@@ -54,7 +60,7 @@ def test7_execute_get_batch_request(self):
5460
self.assertIsNotNone(current_web.url)
5561
self.assertIsNotNone(current_user.user_id)
5662

57-
def test8_execute_update_batch_request(self):
63+
def test9_execute_update_batch_request(self):
5864
client = ClientContext(settings['url']).with_credentials(user_credentials)
5965
web = client.web
6066
new_web_title = "Site %s" % random_seed
@@ -67,7 +73,7 @@ def test8_execute_update_batch_request(self):
6773
client.execute_query()
6874
self.assertEqual(updated_web.properties['Title'], new_web_title)
6975

70-
def test9_execute_get_and_update_batch_request(self):
76+
def test_10_execute_get_and_update_batch_request(self):
7177
client = ClientContext(settings['url']).with_credentials(user_credentials)
7278
list_item = client.web.get_file_by_server_relative_url("/SitePages/Home.aspx").listItemAllFields
7379
new_title = "Page %s" % random_seed
@@ -80,10 +86,10 @@ def test9_execute_get_and_update_batch_request(self):
8086
client.execute_query()
8187
self.assertEqual(updated_list_item.properties['Title'], new_title)
8288

83-
def test_10_create_and_delete_batch_request(self):
89+
def test_11_create_and_delete_batch_request(self):
8490
pass
8591

86-
def test_11_get_and_delete_batch_request(self):
92+
def test_12_get_and_delete_batch_request(self):
8793
file_name = "TestFile{0}.txt".format(random_seed)
8894
client = ClientContext(settings['url']).with_credentials(user_credentials)
8995
list_pages = client.web.lists.get_by_title("Documents")
@@ -101,7 +107,7 @@ def test_11_get_and_delete_batch_request(self):
101107
client.execute_batch()
102108
self.assertTrue(len(files_after), files_count_before)
103109

104-
def test_12_get_entity_type_name(self):
110+
def test_13_get_entity_type_name(self):
105111
str_col = ClientValueCollection(str, [])
106112
self.assertEqual(str_col.entity_type_name, "Collection(Edm.String)")
107113

@@ -113,4 +119,5 @@ def test_12_get_entity_type_name(self):
113119
"Microsoft.Online.SharePoint.TenantAdministration.SecondaryAdministratorsFieldsData")
114120

115121
type_col = ClientValueCollection(SecondaryAdministratorsFieldsData)
116-
self.assertEqual(type_col.entity_type_name, "Collection(Microsoft.Online.SharePoint.TenantAdministration.SecondaryAdministratorsFieldsData)")
122+
expected_type = "Collection(Microsoft.Online.SharePoint.TenantAdministration.SecondaryAdministratorsFieldsData)"
123+
self.assertEqual(type_col.entity_type_name, expected_type)

0 commit comments

Comments
 (0)