diff --git a/messagebird/client.py b/messagebird/client.py index f855971..10b2b9d 100644 --- a/messagebird/client.py +++ b/messagebird/client.py @@ -193,9 +193,18 @@ def message(self, id): """Retrieve the information of a specific message.""" return Message().load(self.request('messages/' + str(id))) - def message_list(self, limit=20, offset=0): - """Retrieve a list of the most recent messages.""" + def message_list(self, limit=20, offset=0, status=None): + """Retrieve a list of the most recent messages. + + Args: + limit(int) : The page limit. + offset(int) : The page to list. + status(str) : Message status filter(scheduled, sent, buffered, delivered, expired or delivery_failed) + Returns: + MessageList(object) : The List of the message requested.""" query = self._format_query(limit, offset) + if status: + query = query + "&status=" + status return MessageList().load(self.request('messages?' + query)) def message_create(self, originator, recipients, body, params=None): diff --git a/tests/test_message.py b/tests/test_message.py index 38013da..2304622 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -66,3 +66,11 @@ def test_message_list(self): self.assertEqual(2, message_list.totalCount) self.assertEqual('https://rest.messagebird.com/messages/?offset=0', message_list.links.first) self.assertEqual('https://rest.messagebird.com/messages/first-message-id', message_list.items[0].href) + + def test_scheduled_message_list(self): + http_client = Mock() + http_client.request.return_value = '{"offset": 0,"limit": 20,"count": 2,"totalCount": 2,"links": {"first": "https://rest.messagebird.com/messages/?offset=0","previous": null,"next": null,"last": "https://rest.messagebird.com/messages/?offset=0"},"items": []}' + + message_list = Client('', http_client).message_list(20, 0, "scheduled") + + http_client.request.assert_called_once_with('messages?limit=20&offset=0&status=scheduled', 'GET', None)