"""Tests module.""" from unittest import mock from django.urls import reverse from django.test import TestCase from github import Github from githubnavigator import container class IndexTests(TestCase): def test_index(self): 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 container.github_client.override(github_client_mock): response = self.client.get(reverse('index')) self.assertContains(response, 'Results found: 2') self.assertContains(response, 'repo1-url') self.assertContains(response, 'repo1-name') self.assertContains(response, 'owner1-login') self.assertContains(response, 'owner1-url') self.assertContains(response, 'owner1-avatar-url') self.assertContains(response, 'repo2-url') self.assertContains(response, 'repo2-name') self.assertContains(response, 'owner2-login') self.assertContains(response, 'owner2-url') self.assertContains(response, 'owner2-avatar-url') def test_index_no_results(self): github_client_mock = mock.Mock(spec=Github) github_client_mock.search_repositories.return_value = [] with container.github_client.override(github_client_mock): response = self.client.get(reverse('index')) self.assertContains(response, 'Results found: 0')