1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
import pytest
import responses
from sparkpost.base import Resource
from sparkpost.exceptions import SparkPostAPIException
fake_base_uri = 'https://fake-base.com'
fake_api_key = 'fake-api-key'
fake_resource_key = 'fake-resource-key'
fake_uri = "%s/%s" % (fake_base_uri, fake_resource_key)
def create_resource():
resource = Resource(fake_base_uri, fake_api_key)
resource.key = fake_resource_key
return resource
def test_uri():
resource = create_resource()
assert resource.uri == fake_uri
@responses.activate
def test_success_request():
responses.add(
responses.GET,
fake_uri,
status=200,
content_type='application/json',
body='{}'
)
resource = create_resource()
results = resource.request('GET', resource.uri)
assert results == {}
@responses.activate
def test_success_request_with_results():
responses.add(
responses.GET,
fake_uri,
status=200,
content_type='application/json',
body='{"results": []}'
)
resource = create_resource()
results = resource.request('GET', resource.uri)
assert results == []
@responses.activate
def test_fail_request():
responses.add(
responses.GET,
fake_uri,
status=500,
content_type='application/json',
body='{"errors": [{"message": "failure", "description": "desc"}]}'
)
resource = create_resource()
with pytest.raises(SparkPostAPIException):
resource.request('GET', resource.uri)
@responses.activate
def test_fail_wrongjson_request():
responses.add(
responses.GET,
fake_uri,
status=500,
content_type='application/json',
body='{"errors": ["Error!"]}'
)
resource = create_resource()
with pytest.raises(SparkPostAPIException):
resource.request('GET', resource.uri)
@responses.activate
def test_fail_nojson_request():
responses.add(
responses.GET,
fake_uri,
status=500,
content_type='application/json',
body='{"errors": '
)
resource = create_resource()
with pytest.raises(SparkPostAPIException):
resource.request('GET', resource.uri)
@responses.activate
def test_fail_no_errors():
responses.add(
responses.GET,
fake_uri,
status=500,
content_type='application/json',
body='no errors'
)
resource = create_resource()
with pytest.raises(SparkPostAPIException):
resource.request('GET', resource.uri)
def test_fail_get():
resource = create_resource()
with pytest.raises(NotImplementedError):
resource.get()
def test_fail_list():
resource = create_resource()
with pytest.raises(NotImplementedError):
resource.list()
def test_fail_create():
resource = create_resource()
with pytest.raises(NotImplementedError):
resource.create()
def test_fail_update():
resource = create_resource()
with pytest.raises(NotImplementedError):
resource.update()
def test_fail_delete():
resource = create_resource()
with pytest.raises(NotImplementedError):
resource.delete()
|