"""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")