Skip to content

Commit

Permalink
Isolated tests implemented with Mocks and Fixtures.
Browse files Browse the repository at this point in the history
  • Loading branch information
dougfraga committed Sep 10, 2020
1 parent 6acbe85 commit 721eb5f
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 5 deletions.
4 changes: 0 additions & 4 deletions libpythonpro_doug/github_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,3 @@ def search_avatar(user):
url = f'https://api.github.com/users/{user}'
resp = requests.get(url)
return resp.json()['avatar_url']


if __name__ == '__main__':
print(search_avatar('dougfraga'))
29 changes: 29 additions & 0 deletions libpythonpro_doug/tests/test_spam/test_github_api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from unittest.mock import Mock

import pytest

from libpythonpro_doug import github_api


@pytest.fixture
def avatar_url():
resp_mock = Mock()
url = 'https://avatars3.githubusercontent.com/u/61299254?v=4'
resp_mock.json.return_value = {
'login': 'dougfraga', 'id': 61299254,
'avatar_url': url
}
get_original = github_api.requests.get
github_api.requests.get = Mock(return_value=resp_mock)
yield url
github_api.requests.get = get_original


def test_search_avatar(avatar_url):
url = github_api.search_avatar('dougfraga')
assert avatar_url == url


def test_search_avatar_integration():
url = github_api.search_avatar('dougfraga')
assert 'https://avatars3.githubusercontent.com/u/61299254?v=4' == url
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import pytest

from libpythonpro_doug.spam.email_sender import Sender
# from libpythonpro_doug.spam.email_sender import Sender
from libpythonpro_doug.spam.main import SpamSender
from libpythonpro_doug.spam.models import User

Expand Down

0 comments on commit 721eb5f

Please sign in to comment.