Skip to content

Commit 47184a2

Browse files
committed
More error catching
modified: johnnyfive/confluence.py modified: johnnyfive/gmail.py modified: johnnyfive/slack.py modified: johnnyfive/utils.py
1 parent a07419c commit 47184a2

File tree

4 files changed

+26
-18
lines changed

4 files changed

+26
-18
lines changed

johnnyfive/confluence.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ class ConfluencePage:
4545
authentication. [Default: None]
4646
use_oauth : bool, optional
4747
Use OAUTH authentication instead of username/password? [Default: False]
48-
logger :
48+
logger : :obj:`logging.Logger`, optional
49+
The logger object for logging [Default: None]
4950
"""
5051

5152
def __init__(self, space, page_title, instance=None, use_oauth=False, logger=None):
@@ -133,7 +134,7 @@ def attach_file(self, filename, name=None, content_type=None, comment=None):
133134
logger=self.logger,
134135
)
135136

136-
def create(self, page_body, parent_id=None):
137+
def create(self, page_body, parent_id=None, representation="wiki"):
137138
"""Create a brand new Confluence page
138139
139140
Summon from the depths of computing a new page.
@@ -145,6 +146,9 @@ def create(self, page_body, parent_id=None):
145146
parent_id : str, optional
146147
The parent page to place this under. If none given, the new page
147148
will be created at the root of ``self.space``. [Default: None]
149+
representation : str, optional
150+
The Confluence strorage representation to use. [Default: "wiki"]
151+
Use "storage" for XML-based documents
148152
"""
149153
if not self._check_perm("EDITSPACE", "create a page"):
150154
return
@@ -156,15 +160,13 @@ def create(self, page_body, parent_id=None):
156160
)
157161
return
158162

159-
print(f" ***** logger: {type(self.logger)}")
160-
161163
johnnyfive.utils.safe_service_connect(
162164
self.confluence.create_page,
163165
self.space,
164166
self.title,
165167
page_body,
166168
parent_id=parent_id,
167-
representation="wiki",
169+
representation=representation,
168170
editor="v1",
169171
logger=self.logger,
170172
)
@@ -396,7 +398,8 @@ def setup_confluence(use_oauth=False, logger=None):
396398
----------
397399
use_oauth : bool, optional
398400
Use the OAUTH authentication scheme? [Default: False]
399-
logger :
401+
logger : :obj:`logging.Logger`, optional
402+
The logger object for logging [Default: None]
400403
401404
Returns
402405
-------

johnnyfive/gmail.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ class GmailMessage:
6161
Display Name of the sender (i.e. which bot) [Default: None]
6262
fromaddr : `str`, optional
6363
Sender email address [Default: Value from [gmailSetup]]
64-
logger :
64+
logger : :obj:`logging.Logger`, optional
65+
The logger object for logging [Default: None]
6566
"""
6667

6768
def __init__(
@@ -189,7 +190,8 @@ class GetMessages:
189190
before : str, optional
190191
Date before which to search for messages. Must be in YYYY/MM/DD format.
191192
[Default: None]
192-
logger :
193+
logger : :obj:`logging.Logger`, optional
194+
The logger object for logging [Default: None]
193195
"""
194196

195197
def __init__(
@@ -445,7 +447,8 @@ def setup_gmail(interactive=False, logger=None):
445447
interactive : bool, optional
446448
Is this session interactive? Relates to how to deal with toke
447449
refresh. [Default: False]
448-
logger :
450+
logger : :obj:`logging.Logger`, optional
451+
The logger object for logging [Default: None]
449452
450453
Returns
451454
-------

johnnyfive/slack.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def _read_channels(self, name):
149149

150150

151151
# Internal Functions =========================================================#
152-
def setup_slack():
152+
def setup_slack(logger=None):
153153
"""setup_slack Setup the Slack WebClient for posting
154154
155155
_extended_summary_
@@ -158,8 +158,8 @@ def setup_slack():
158158
-------
159159
client : `slack_sdk.web.client.WebClient`
160160
The WebClient object needed for reading and writing
161-
logger : `logging.Logger`
162-
The logging thingie
161+
logger : :obj:`logging.Logger`, optional
162+
The logger object for logging [Default: None]
163163
"""
164164
# Read the setup
165165
setup = johnnyfive.utils.read_ligmos_conffiles("slackSetup")

johnnyfive/utils.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@ def safe_service_connect(func, *args, pause=5, nretries=5, logger=None, **kwargs
190190
nretries : int, optional
191191
The total number of times to retry connecting before returning None
192192
[Default: 10]
193-
logger :
193+
logger : :obj:`logging.Logger`, optional
194+
The logger object for logging [Default: None]
194195
195196
Returns
196197
-------
@@ -237,11 +238,12 @@ def safe_service_connect(func, *args, pause=5, nretries=5, logger=None, **kwargs
237238
except requests.exceptions.HTTPError as exception:
238239
proper_print(
239240
f"Execution of `{func.__name__}` failed because of HTTP error."
240-
f"\n{exception}",
241-
"except",
241+
f"\n{type(exception).__name__} {exception.args}",
242+
"error",
242243
logger,
243244
)
244-
proper_print("Aborting...", "error", logger)
245+
proper_print("Aborting...", "except", logger)
246+
raise exception
245247
break
246248

247249
# Gmail service error, no retry and pass the exception upward
@@ -298,8 +300,8 @@ def proper_print(msg, level, logger=None):
298300
The message to convey
299301
level : str
300302
The logging level. One of [``info``,``warn``,``except``]
301-
logger : _type_, optional
302-
The logger to use, if any [Default: None]
303+
logger : :obj:`logging.Logger`, optional
304+
The logger object for logging [Default: None]
303305
"""
304306
if level == "info":
305307
if logger is None:

0 commit comments

Comments
 (0)