mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-06 14:40:48 +03:00
Add tests
This commit is contained in:
parent
fabe6d8a5d
commit
8f158442f2
90
examples/applications/ghnav-flask/githubnavigator/tests.py
Normal file
90
examples/applications/ghnav-flask/githubnavigator/tests.py
Normal file
|
@ -0,0 +1,90 @@
|
|||
"""Tests module."""
|
||||
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
from github import Github
|
||||
from flask import url_for
|
||||
|
||||
from .application import Application
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def application():
|
||||
application = Application()
|
||||
application.config.from_dict(
|
||||
{
|
||||
'github': {
|
||||
'auth_token': 'test-token',
|
||||
'request_timeout': 10,
|
||||
},
|
||||
'search': {
|
||||
'default_term': 'Dependency Injector',
|
||||
'default_limit': 5,
|
||||
},
|
||||
}
|
||||
)
|
||||
return application
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def app(application: Application):
|
||||
return application.app()
|
||||
|
||||
|
||||
def test_index(client, application: Application):
|
||||
github_client_mock = mock.Mock(spec=Github)
|
||||
github_client_mock.search_repositories.return_value = [
|
||||
mock.Mock(
|
||||
html_url='repo1-url',
|
||||
name='repo1-name',
|
||||
owner=mock.Mock(
|
||||
login='owner1-login',
|
||||
html_url='owner1-url',
|
||||
avatar_url='owner1-avatar-url',
|
||||
),
|
||||
created_at='repo1-created-at',
|
||||
get_commits=mock.Mock(return_value=[mock.Mock()]),
|
||||
),
|
||||
mock.Mock(
|
||||
html_url='repo2-url',
|
||||
name='repo2-name',
|
||||
owner=mock.Mock(
|
||||
login='owner2-login',
|
||||
html_url='owner2-url',
|
||||
avatar_url='owner2-avatar-url',
|
||||
),
|
||||
created_at='repo2-created-at',
|
||||
get_commits=mock.Mock(return_value=[mock.Mock()]),
|
||||
),
|
||||
]
|
||||
|
||||
with application.github_client.override(github_client_mock):
|
||||
response = client.get(url_for('index'))
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
assert b'repo1-url' in response.data
|
||||
assert b'repo1-name' in response.data
|
||||
assert b'owner1-login' in response.data
|
||||
assert b'owner1-url' in response.data
|
||||
assert b'owner1-avatar-url' in response.data
|
||||
assert b'repo1-created-at' in response.data
|
||||
|
||||
assert b'repo2-url' in response.data
|
||||
assert b'repo2-name' in response.data
|
||||
assert b'owner2-login' in response.data
|
||||
assert b'owner2-url' in response.data
|
||||
assert b'owner2-avatar-url' in response.data
|
||||
assert b'repo2-created-at' in response.data
|
||||
|
||||
|
||||
def test_index_no_results(client, application: Application):
|
||||
github_client_mock = mock.Mock(spec=Github)
|
||||
github_client_mock.search_repositories.return_value = []
|
||||
|
||||
with application.github_client.override(github_client_mock):
|
||||
response = client.get(url_for('index'))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert b'No search results' in response.data
|
|
@ -1,3 +1,5 @@
|
|||
dependency-injector
|
||||
flask
|
||||
pygithub
|
||||
pytest-flask
|
||||
pytest-cov
|
||||
|
|
Loading…
Reference in New Issue
Block a user