From 417b618bb60ab5d9bd9ed6dd0f2fbe858ffcc3b4 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Sun, 4 Oct 2020 13:44:18 -0400 Subject: [PATCH] Add tests --- .../django/githubnavigator/settings.py | 2 +- .../miniapps/django/githubnavigator/urls.py | 2 +- .../django/githubnavigator/web/apps.py | 2 +- .../django/githubnavigator/web/tests.py | 62 ++++++++++++++++++- .../django/githubnavigator/web/views.py | 2 - 5 files changed, 63 insertions(+), 7 deletions(-) diff --git a/examples/miniapps/django/githubnavigator/settings.py b/examples/miniapps/django/githubnavigator/settings.py index 8498215d..3a55dbcb 100644 --- a/examples/miniapps/django/githubnavigator/settings.py +++ b/examples/miniapps/django/githubnavigator/settings.py @@ -31,7 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ - 'web.apps.WebConfig', + 'githubnavigator.web.apps.WebConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/examples/miniapps/django/githubnavigator/urls.py b/examples/miniapps/django/githubnavigator/urls.py index 5e88d78f..bc27ed30 100644 --- a/examples/miniapps/django/githubnavigator/urls.py +++ b/examples/miniapps/django/githubnavigator/urls.py @@ -17,6 +17,6 @@ from django.contrib import admin from django.urls import path, include urlpatterns = [ - path('', include('web.urls')), + path('', include('githubnavigator.web.urls')), path('admin/', admin.site.urls), ] diff --git a/examples/miniapps/django/githubnavigator/web/apps.py b/examples/miniapps/django/githubnavigator/web/apps.py index e3a9ff07..5ff64040 100644 --- a/examples/miniapps/django/githubnavigator/web/apps.py +++ b/examples/miniapps/django/githubnavigator/web/apps.py @@ -5,7 +5,7 @@ from . import views class WebConfig(AppConfig): - name = 'web' + name = 'githubnavigator.web' def ready(self): container.wire(modules=[views]) diff --git a/examples/miniapps/django/githubnavigator/web/tests.py b/examples/miniapps/django/githubnavigator/web/tests.py index a79ca8be..e5414a86 100644 --- a/examples/miniapps/django/githubnavigator/web/tests.py +++ b/examples/miniapps/django/githubnavigator/web/tests.py @@ -1,3 +1,61 @@ -# from django.test import TestCase +from unittest import mock -# Create your tests here. +from django.urls import reverse +from django.test import TestCase +from github import Github + +from githubnavigator import container + + +class SampleTests(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') diff --git a/examples/miniapps/django/githubnavigator/web/views.py b/examples/miniapps/django/githubnavigator/web/views.py index 97850b7b..68345491 100644 --- a/examples/miniapps/django/githubnavigator/web/views.py +++ b/examples/miniapps/django/githubnavigator/web/views.py @@ -1,5 +1,3 @@ -"""Views module.""" - from django.http import HttpRequest, HttpResponse from django.shortcuts import render from dependency_injector.wiring import Provide