Added services and base tests

master
androiddrew 7 years ago
parent f67beba9db
commit 7ed582f8c8

@ -1,2 +1,3 @@
# apitesting
A sample project illustrating how to write tests against nd external APIa

@ -0,0 +1 @@
BASE_URL = 'http://jsonplaceholder.typicode.com'

@ -0,0 +1,16 @@
from urllib.parse import urljoin
import requests
from apitesting import BASE_URL
TODOS_URL = urljoin(BASE_URL, 'todos')
def get_todos():
"""Returns a list of JSON todo elements"""
response = requests.get(TODOS_URL)
if response.ok:
return response
else:
return None

@ -0,0 +1,39 @@
from unittest.mock import Mock, patch
import pytest
from apitesting.services import get_todos
def test_request_response():
with patch('apitesting.services.requests.get') as mock_get:
mock_get.return_value.ok = True
response = get_todos()
assert response is not None
def test_getting_todos_when_response_is_ok():
todos = [{
'userId': 1,
'id': 1,
'title': 'Make the bed',
'completed': False
}]
with patch('apitesting.services.requests.get') as mock_get:
mock_get.return_value.ok = True
mock_get.return_value.json.return_value = todos
response = get_todos()
assert response is not None
assert response.json() == todos
def testing_getting_todos_when_response_is_not_ok():
with patch('apitesting.services.requests.get') as mock_get:
mock_get.return_value.ok = False
response = get_todos()
assert response is None
Loading…
Cancel
Save