diff --git a/tests/test_calls.py b/tests/test_calls.py index 04625d270e..44a64e00df 100644 --- a/tests/test_calls.py +++ b/tests/test_calls.py @@ -43,6 +43,18 @@ def test_paging(mock): mock.assert_called_with("GET", uri, params=exp_params, auth=AUTH) +@patch("twilio.rest.resources.base.make_twilio_request") +def test_paging_iter(mock): + resp = create_mock_json("tests/resources/calls_list.json") + mock.return_value = resp + + uri = "%s/Calls" % (BASE_URI) + next(list_resource.iter(started_before=date(2010, 12, 5))) + exp_params = {'StartTime<': '2010-12-05'} + + mock.assert_called_with("GET", uri, params=exp_params, auth=AUTH) + + @patch("twilio.rest.resources.base.make_twilio_request") def test_get(mock): resp = create_mock_json("tests/resources/calls_instance.json") diff --git a/twilio/rest/resources/calls.py b/twilio/rest/resources/calls.py index 019f7aec7b..e2d060df7e 100644 --- a/twilio/rest/resources/calls.py +++ b/twilio/rest/resources/calls.py @@ -85,6 +85,25 @@ def list(self, from_=None, ended_after=None, kwargs["EndTime"] = parse_date(ended) return self.get_instances(kwargs) + @normalize_dates + def iter(self, from_=None, ended_after=None, + ended_before=None, ended=None, started_before=None, + started_after=None, started=None, **kwargs): + """ + Returns an iterator of :class:`Call` resources. + + :param date after: Only list calls started after this datetime + :param date before: Only list calls started before this datetime + """ + kwargs["from"] = from_ + kwargs["StartTime<"] = started_before + kwargs["StartTime>"] = started_after + kwargs["StartTime"] = parse_date(started) + kwargs["EndTime<"] = ended_before + kwargs["EndTime>"] = ended_after + kwargs["EndTime"] = parse_date(ended) + return super(Calls, self).iter(**kwargs) + def create(self, to, from_, url, status_method=None, **kwargs): """ Make a phone call to a number.