mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-01 00:17:55 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests module."""
 | |
| 
 | |
| from unittest import mock
 | |
| 
 | |
| import pytest
 | |
| from github import Github
 | |
| from flask import url_for
 | |
| 
 | |
| from .application import create_app
 | |
| 
 | |
| 
 | |
| @pytest.fixture
 | |
| def app():
 | |
|     app = create_app()
 | |
|     yield app
 | |
|     app.container.unwire()
 | |
| 
 | |
| 
 | |
| def test_index(client, app):
 | |
|     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',
 | |
|             ),
 | |
|             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',
 | |
|             ),
 | |
|             get_commits=mock.Mock(return_value=[mock.Mock()]),
 | |
|         ),
 | |
|     ]
 | |
| 
 | |
|     with app.container.github_client.override(github_client_mock):
 | |
|         response = client.get(url_for('example.index'))
 | |
| 
 | |
|     assert response.status_code == 200
 | |
|     assert b'Results found: 2' in response.data
 | |
| 
 | |
|     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'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
 | |
| 
 | |
| 
 | |
| def test_index_no_results(client, app):
 | |
|     github_client_mock = mock.Mock(spec=Github)
 | |
|     github_client_mock.search_repositories.return_value = []
 | |
| 
 | |
|     with app.container.github_client.override(github_client_mock):
 | |
|         response = client.get(url_for('example.index'))
 | |
| 
 | |
|     assert response.status_code == 200
 | |
|     assert b'Results found: 0' in response.data
 |