mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 18:07:44 +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
 |