python-dependency-injector/examples/miniapps/django/web/tests.py
2021-09-30 19:19:34 -04:00

64 lines
2.1 KiB
Python

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