From 693d5680c0e0982e6d780a5cd90bc6b6088e57d2 Mon Sep 17 00:00:00 2001 From: mhossain Date: Thu, 2 Mar 2017 15:51:28 -0500 Subject: [PATCH 1/4] allow sending params in transmission list endpoint --- sparkpost/transmissions.py | 8 +++++--- test/test_transmissions.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/sparkpost/transmissions.py b/sparkpost/transmissions.py index 3586e2f..885da4d 100644 --- a/sparkpost/transmissions.py +++ b/sparkpost/transmissions.py @@ -265,15 +265,17 @@ def get(self, transmission_id): results = self._fetch_get(transmission_id) return results['transmission'] - def list(self): + def list(self, **kwargs): """ Get a list of your transmissions + :param campaign_id: ID of the campaign used by the transmissions + :param template_id: ID of the template used by the transmissions + :returns: list of transmissions :raises: :exc:`SparkPostAPIException` if API call fails """ - results = self.request('GET', self.uri) - return results + return self.request('GET', self.uri, params=kwargs) def delete(self, transmission_id): """ diff --git a/test/test_transmissions.py b/test/test_transmissions.py index 9847fb2..6ecf9b5 100644 --- a/test/test_transmissions.py +++ b/test/test_transmissions.py @@ -310,6 +310,22 @@ def test_success_list(): assert response == [] +@responses.activate +def test_success_list_with_params(): + responses.add( + responses.GET, + 'https://api.sparkpost.com/api/v1/transmissions?template_id=abcd', + status=200, + content_type='application/json', + body='{"results": []}', + match_querystring=True + + ) + sp = SparkPost('fake-key') + response = sp.transmission.list(template_id='abcd') + assert response == [] + + @responses.activate def test_success_delete(): responses.add( From a781555bdf8b391beaf7c413a13851449d3caf08 Mon Sep 17 00:00:00 2001 From: mhossain Date: Mon, 6 Mar 2017 11:08:57 -0500 Subject: [PATCH 2/4] add deprecation warning, add warning test --- sparkpost/transmissions.py | 2 ++ test/test_transmissions.py | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/sparkpost/transmissions.py b/sparkpost/transmissions.py index 885da4d..670bb94 100644 --- a/sparkpost/transmissions.py +++ b/sparkpost/transmissions.py @@ -1,6 +1,7 @@ import base64 import copy import json +import warnings from email.utils import parseaddr from .base import Resource @@ -275,6 +276,7 @@ def list(self, **kwargs): :returns: list of transmissions :raises: :exc:`SparkPostAPIException` if API call fails """ + warnings.warn('deprecated', DeprecationWarning) return self.request('GET', self.uri, params=kwargs) def delete(self, transmission_id): diff --git a/test/test_transmissions.py b/test/test_transmissions.py index 6ecf9b5..6020e8c 100644 --- a/test/test_transmissions.py +++ b/test/test_transmissions.py @@ -2,6 +2,7 @@ import json import os import tempfile +import warnings import pytest import responses @@ -306,8 +307,12 @@ def test_success_list(): body='{"results": []}' ) sp = SparkPost('fake-key') - response = sp.transmission.list() - assert response == [] + with warnings.catch_warnings(record=True) as warns: + warnings.simplefilter("always") + response = sp.transmission.list() + assert response == [] + assert len(warns) == 1 + assert "deprecated" in str(warns[-1].message) @responses.activate From 7dff42de10b763e98529fb52b3d18154ad425ebc Mon Sep 17 00:00:00 2001 From: mhossain Date: Mon, 6 Mar 2017 11:55:43 -0500 Subject: [PATCH 3/4] update test to use mock --- test-requirements.txt | 1 + test/test_transmissions.py | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index 98fd527..6516877 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,3 +3,4 @@ pytest==2.8.7 pytest-cov==1.8.1 requests==2.5.1 responses==0.3.0 +mock==2.0.0 diff --git a/test/test_transmissions.py b/test/test_transmissions.py index 6020e8c..1035329 100644 --- a/test/test_transmissions.py +++ b/test/test_transmissions.py @@ -3,6 +3,7 @@ import os import tempfile import warnings +from mock import patch import pytest import responses @@ -298,7 +299,8 @@ def test_fail_get(): @responses.activate -def test_success_list(): +@patch.object(warnings, 'warn') +def test_success_list(mock_warn): responses.add( responses.GET, 'https://api.sparkpost.com/api/v1/transmissions', @@ -307,12 +309,9 @@ def test_success_list(): body='{"results": []}' ) sp = SparkPost('fake-key') - with warnings.catch_warnings(record=True) as warns: - warnings.simplefilter("always") - response = sp.transmission.list() - assert response == [] - assert len(warns) == 1 - assert "deprecated" in str(warns[-1].message) + response = sp.transmission.list() + assert mock_warn.called + assert response == [] @responses.activate From 6989132c2a15b7464a6f85e07b7691b5369a0309 Mon Sep 17 00:00:00 2001 From: mhossain Date: Tue, 7 Mar 2017 11:43:15 -0500 Subject: [PATCH 4/4] add links to deprecation message, modify lib order --- Makefile | 2 +- sparkpost/transmissions.py | 5 ++++- test/test_transmissions.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ac4084e..2725b63 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: analysis all build clean docs docs-install docs-open install release release-test test venv +.PHONY: analysis all build clean docs docs-install docs-open install release release-test test venv all: clean venv install diff --git a/sparkpost/transmissions.py b/sparkpost/transmissions.py index 670bb94..997f822 100644 --- a/sparkpost/transmissions.py +++ b/sparkpost/transmissions.py @@ -276,7 +276,10 @@ def list(self, **kwargs): :returns: list of transmissions :raises: :exc:`SparkPostAPIException` if API call fails """ - warnings.warn('deprecated', DeprecationWarning) + warn_msg = 'This endpoint is deprecated. For details, ' + 'check https://sparkpo.st/5qcj4.' + + warnings.warn(warn_msg, DeprecationWarning) return self.request('GET', self.uri, params=kwargs) def delete(self, transmission_id): diff --git a/test/test_transmissions.py b/test/test_transmissions.py index 1035329..172dcb7 100644 --- a/test/test_transmissions.py +++ b/test/test_transmissions.py @@ -3,11 +3,11 @@ import os import tempfile import warnings -from mock import patch import pytest import responses import six +from mock import patch from sparkpost import SparkPost from sparkpost import Transmissions