Added services and base tests
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…
Reference in New Issue