Fixes and added tests for the security notification worker

Fixes #1301

- Ensures that the worker uses pagination properly
- Ensures that the worker handles failure as expected
- Moves marking the notification as read to after the worker processes it
- Increases the number of layers requested to 100
This commit is contained in:
Joseph Schorr 2016-03-18 20:28:06 -04:00
parent e8a511d526
commit aa5587c93c
4 changed files with 75 additions and 15 deletions

View file

@ -160,7 +160,7 @@ class SecurityScannerAPI(object):
return False
def get_notification(self, notification_name, layer_limit=10, page=None):
def get_notification(self, notification_name, layer_limit=100, page=None):
""" Gets the data for a specific notification, with optional page token.
Returns a tuple of the data (None on failure) and whether to retry.
"""
@ -194,7 +194,7 @@ class SecurityScannerAPI(object):
""" Marks a security scanner notification as read. """
try:
response = self._call('DELETE', _API_METHOD_MARK_NOTIFICATION_READ % notification_name)
return response.status_code == 200
return response.status_code / 100 == 2
except requests.exceptions.RequestException:
logger.exception('Failed to mark notification as read: %s', notification_name)
return False