From dbb67973882995826cc8db757b3b545126ad1c99 Mon Sep 17 00:00:00 2001 From: "David A. Hannasch" Date: Fri, 12 Mar 2021 20:51:45 -0700 Subject: [PATCH 1/5] Raise specific exception for bad auth. --- shareplum/site.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/shareplum/site.py b/shareplum/site.py index f8a6073..be2c475 100644 --- a/shareplum/site.py +++ b/shareplum/site.py @@ -9,6 +9,7 @@ from lxml import etree # import defusedxml.ElementTree as etree +from .errors import ShareplumRequestError from .request_helper import get, post from .list import _List2007, _List365 from .folder import _Folder @@ -338,12 +339,17 @@ def get_users(self, rowlimit=0): self.last_request = str(soap_request) # Send Request - response = post(self._session, - url=self._url("Lists"), - headers=self._headers("GetListItems"), - data=str(soap_request).encode("utf-8"), - verify=self._verify_ssl, - timeout=self.timeout) + response = self._session.post(self._url("Lists"), + headers=self._headers("GetListItems"), + data=str(soap_request).encode("utf-8"), + verify=self._verify_ssl, + timeout=self.timeout, + ) + if response.status_code == 404 and requests.post(self._url("Lists")).status_code == 200: + raise ShareplumRequestError("get_users received a 404 for the SOAP request " + "even though the URL {} is accessible; this error code in this context means " + "the authorization is bad.".format(self._url("Lists"))) + response.raise_for_status() # Parse Response try: From 2139385056653503c4d269694020994a9aabd852 Mon Sep 17 00:00:00 2001 From: "David A. Hannasch" Date: Sat, 13 Mar 2021 09:15:57 -0700 Subject: [PATCH 2/5] Print username if available. --- shareplum/site.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/shareplum/site.py b/shareplum/site.py index be2c475..28aac0f 100644 --- a/shareplum/site.py +++ b/shareplum/site.py @@ -346,9 +346,12 @@ def get_users(self, rowlimit=0): timeout=self.timeout, ) if response.status_code == 404 and requests.post(self._url("Lists")).status_code == 200: - raise ShareplumRequestError("get_users received a 404 for the SOAP request " - "even though the URL {} is accessible; this error code in this context means " - "the authorization is bad.".format(self._url("Lists"))) + msg = "get_users received a 404 for the SOAP request " + "even though the URL {} is accessible; this error code in this context means " + "the authorization is bad.".format(self._url("Lists")) + if 'auth' in self._session and 'username' in self._session.auth: + msg += " Username = {}".format(self._session.auth.username) + raise ShareplumRequestError(msg) response.raise_for_status() # Parse Response From 7f3ff6e1d4292f3d0bf1a7c3308de67a06364f38 Mon Sep 17 00:00:00 2001 From: "David A. Hannasch" Date: Sat, 13 Mar 2021 09:18:19 -0700 Subject: [PATCH 3/5] parens --- shareplum/site.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shareplum/site.py b/shareplum/site.py index 28aac0f..bdd978b 100644 --- a/shareplum/site.py +++ b/shareplum/site.py @@ -346,9 +346,9 @@ def get_users(self, rowlimit=0): timeout=self.timeout, ) if response.status_code == 404 and requests.post(self._url("Lists")).status_code == 200: - msg = "get_users received a 404 for the SOAP request " - "even though the URL {} is accessible; this error code in this context means " - "the authorization is bad.".format(self._url("Lists")) + msg = ("get_users received a 404 for the SOAP request " + "even though the URL {} is accessible; this error code in this context means " + "the authorization is bad.".format(self._url("Lists"))) if 'auth' in self._session and 'username' in self._session.auth: msg += " Username = {}".format(self._session.auth.username) raise ShareplumRequestError(msg) From 675c7f7a428244748e09565a3d5a5dc65c28ac0e Mon Sep 17 00:00:00 2001 From: "David A. Hannasch" Date: Sat, 13 Mar 2021 09:26:04 -0700 Subject: [PATCH 4/5] hasattr --- shareplum/site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shareplum/site.py b/shareplum/site.py index bdd978b..48bffbc 100644 --- a/shareplum/site.py +++ b/shareplum/site.py @@ -349,7 +349,7 @@ def get_users(self, rowlimit=0): msg = ("get_users received a 404 for the SOAP request " "even though the URL {} is accessible; this error code in this context means " "the authorization is bad.".format(self._url("Lists"))) - if 'auth' in self._session and 'username' in self._session.auth: + if hasattr(self._session, 'auth') and hasattr(self._session.auth, 'username'): msg += " Username = {}".format(self._session.auth.username) raise ShareplumRequestError(msg) response.raise_for_status() From 0f5ea06b3e4aba8c99175cf1bacc5c675d3987d6 Mon Sep 17 00:00:00 2001 From: "David A. Hannasch" Date: Sat, 13 Mar 2021 09:38:13 -0700 Subject: [PATCH 5/5] print domain too --- shareplum/site.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shareplum/site.py b/shareplum/site.py index 48bffbc..e0cb705 100644 --- a/shareplum/site.py +++ b/shareplum/site.py @@ -349,6 +349,8 @@ def get_users(self, rowlimit=0): msg = ("get_users received a 404 for the SOAP request " "even though the URL {} is accessible; this error code in this context means " "the authorization is bad.".format(self._url("Lists"))) + if hasattr(self._session, 'auth') and hasattr(self._session.auth, 'domain'): + msg += " Domain = {}".format(self._session.auth.domain) if hasattr(self._session, 'auth') and hasattr(self._session.auth, 'username'): msg += " Username = {}".format(self._session.auth.username) raise ShareplumRequestError(msg)