+
Github Navigator
+
+
+
+
Results found: {{ repositories|length }}
+
+
+
+
+{% endblock %}
diff --git a/examples/miniapps/flask-blueprints/githubnavigator/tests.py b/examples/miniapps/flask-blueprints/githubnavigator/tests.py
new file mode 100644
index 00000000..ddf4c256
--- /dev/null
+++ b/examples/miniapps/flask-blueprints/githubnavigator/tests.py
@@ -0,0 +1,71 @@
+"""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
diff --git a/examples/miniapps/flask-blueprints/requirements.txt b/examples/miniapps/flask-blueprints/requirements.txt
new file mode 100644
index 00000000..78a650f6
--- /dev/null
+++ b/examples/miniapps/flask-blueprints/requirements.txt
@@ -0,0 +1,7 @@
+dependency-injector
+flask
+bootstrap-flask
+pygithub
+pyyaml
+pytest-flask
+pytest-cov
diff --git a/examples/miniapps/flask-blueprints/screenshot.png b/examples/miniapps/flask-blueprints/screenshot.png
new file mode 100644
index 00000000..350aaa67
Binary files /dev/null and b/examples/miniapps/flask-blueprints/screenshot.png differ