diff --git a/docs/tutorials/flask.rst b/docs/tutorials/flask.rst index f22b6a2a..9e545642 100644 --- a/docs/tutorials/flask.rst +++ b/docs/tutorials/flask.rst @@ -129,7 +129,7 @@ Put next into the ``views.py``: def index(): - return 'Hello, World!' + return "Hello, World!" Ok, we have the view. @@ -170,7 +170,7 @@ Put next into the ``application.py``: app = Flask(__name__) app.container = container - app.add_url_rule('/', 'index', views.index) + app.add_url_rule("/", "index", views.index) return app @@ -246,7 +246,7 @@ Edit ``application.py``: app = Flask(__name__) app.container = container - app.add_url_rule('/', 'index', views.index) + app.add_url_rule("/", "index", views.index) bootstrap = Bootstrap() bootstrap.init_app(app) @@ -398,13 +398,13 @@ Edit ``views.py``: def index(): - query = request.args.get('query', 'Dependency Injector') - limit = request.args.get('limit', 10, int) + query = request.args.get("query", "Dependency Injector") + limit = request.args.get("limit", 10, int) repositories = [] return render_template( - 'index.html', + "index.html", query=query, limit=limit, repositories=repositories, @@ -553,12 +553,12 @@ Edit ``application.py``: def create_app() -> Flask: container = Container() - container.config.from_yaml('config.yml') - container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.config.from_yaml("config.yml") + container.config.github.auth_token.from_env("GITHUB_TOKEN") app = Flask(__name__) app.container = container - app.add_url_rule('/', 'index', views.index) + app.add_url_rule("/", "index", views.index) bootstrap = Bootstrap() bootstrap.init_app(app) @@ -639,7 +639,7 @@ and put next into it: """Search for repositories and return formatted data.""" repositories = self._github_client.search_repositories( query=query, - **{'in': 'name'}, + **{"in": "name"}, ) return [ self._format_repo(repository) @@ -649,22 +649,22 @@ and put next into it: def _format_repo(self, repository: Repository): commits = repository.get_commits() return { - 'url': repository.html_url, - 'name': repository.name, - 'owner': { - 'login': repository.owner.login, - 'url': repository.owner.html_url, - 'avatar_url': repository.owner.avatar_url, + "url": repository.html_url, + "name": repository.name, + "owner": { + "login": repository.owner.login, + "url": repository.owner.html_url, + "avatar_url": repository.owner.avatar_url, }, - 'latest_commit': self._format_commit(commits[0]) if commits else {}, + "latest_commit": self._format_commit(commits[0]) if commits else {}, } def _format_commit(self, commit: Commit): return { - 'sha': commit.sha, - 'url': commit.html_url, - 'message': commit.commit.message, - 'author_name': commit.commit.author.name, + "sha": commit.sha, + "url": commit.html_url, + "message": commit.commit.message, + "author_name": commit.commit.author.name, } Now let's add ``SearchService`` to the container. @@ -720,13 +720,13 @@ Edit ``views.py``: @inject def index(search_service: SearchService = Provide[Container.search_service]): - query = request.args.get('query', 'Dependency Injector') - limit = request.args.get('limit', 10, int) + query = request.args.get("query", "Dependency Injector") + limit = request.args.get("limit", 10, int) repositories = search_service.search_repositories(query, limit) return render_template( - 'index.html', + "index.html", query=query, limit=limit, repositories=repositories, @@ -752,13 +752,13 @@ Edit ``application.py``: def create_app() -> Flask: container = Container() - container.config.from_yaml('config.yml') - container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.config.from_yaml("config.yml") + container.config.github.auth_token.from_env("GITHUB_TOKEN") container.wire(modules=[views]) app = Flask(__name__) app.container = container - app.add_url_rule('/', 'index', views.index) + app.add_url_rule("/", "index", views.index) bootstrap = Bootstrap() bootstrap.init_app(app) @@ -801,13 +801,13 @@ Edit ``views.py``: default_query: str = Provide[Container.config.default.query], default_limit: int = Provide[Container.config.default.limit.as_int()], ): - query = request.args.get('query', default_query) - limit = request.args.get('limit', default_limit, int) + query = request.args.get("query", default_query) + limit = request.args.get("limit", default_limit, int) repositories = search_service.search_repositories(query, limit) return render_template( - 'index.html', + "index.html", query=query, limit=limit, repositories=repositories, @@ -900,44 +900,44 @@ and put next into it: github_client_mock = mock.Mock(spec=Github) github_client_mock.search_repositories.return_value = [ mock.Mock( - html_url='repo1-url', - name='repo1-name', + html_url="repo1-url", + name="repo1-name", owner=mock.Mock( - login='owner1-login', - html_url='owner1-url', - avatar_url='owner1-avatar-url', + 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', + html_url="repo2-url", + name="repo2-name", owner=mock.Mock( - login='owner2-login', - html_url='owner2-url', - avatar_url='owner2-avatar-url', + 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('index')) + response = client.get(url_for("index")) assert response.status_code == 200 - assert b'Results found: 2' in response.data + 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"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 + 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): @@ -945,10 +945,10 @@ and put next into it: github_client_mock.search_repositories.return_value = [] with app.container.github_client.override(github_client_mock): - response = client.get(url_for('index')) + response = client.get(url_for("index")) assert response.status_code == 200 - assert b'Results found: 0' in response.data + assert b"Results found: 0" in response.data Now let's run it and check the coverage: diff --git a/examples/miniapps/flask-blueprints/githubnavigator/application.py b/examples/miniapps/flask-blueprints/githubnavigator/application.py index eabf8eed..32aa0667 100644 --- a/examples/miniapps/flask-blueprints/githubnavigator/application.py +++ b/examples/miniapps/flask-blueprints/githubnavigator/application.py @@ -9,8 +9,8 @@ from .blueprints import example def create_app() -> Flask: container = Container() - container.config.from_yaml('config.yml') - container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.config.from_yaml("config.yml") + container.config.github.auth_token.from_env("GITHUB_TOKEN") container.wire(modules=[example]) app = Flask(__name__) diff --git a/examples/miniapps/flask-blueprints/githubnavigator/blueprints/example.py b/examples/miniapps/flask-blueprints/githubnavigator/blueprints/example.py index 48a30b7b..4e92f5e9 100644 --- a/examples/miniapps/flask-blueprints/githubnavigator/blueprints/example.py +++ b/examples/miniapps/flask-blueprints/githubnavigator/blueprints/example.py @@ -7,23 +7,23 @@ from githubnavigator.services import SearchService from githubnavigator.containers import Container -blueprint = Blueprint('example', __name__, template_folder='templates/') +blueprint = Blueprint("example", __name__, template_folder="templates/") -@blueprint.route('/') +@blueprint.route("/") @inject def index( search_service: SearchService = Provide[Container.search_service], default_query: str = Provide[Container.config.default.query], default_limit: int = Provide[Container.config.default.limit.as_int()], ): - query = request.args.get('query', default_query) - limit = request.args.get('limit', default_limit, int) + query = request.args.get("query", default_query) + limit = request.args.get("limit", default_limit, int) repositories = search_service.search_repositories(query, limit) return render_template( - 'index.html', + "index.html", query=query, limit=limit, repositories=repositories, diff --git a/examples/miniapps/flask-blueprints/githubnavigator/services.py b/examples/miniapps/flask-blueprints/githubnavigator/services.py index 9c6ff839..3e80a7ec 100644 --- a/examples/miniapps/flask-blueprints/githubnavigator/services.py +++ b/examples/miniapps/flask-blueprints/githubnavigator/services.py @@ -15,7 +15,7 @@ class SearchService: """Search for repositories and return formatted data.""" repositories = self._github_client.search_repositories( query=query, - **{'in': 'name'}, + **{"in": "name"}, ) return [ self._format_repo(repository) @@ -25,20 +25,20 @@ class SearchService: def _format_repo(self, repository: Repository): commits = repository.get_commits() return { - 'url': repository.html_url, - 'name': repository.name, - 'owner': { - 'login': repository.owner.login, - 'url': repository.owner.html_url, - 'avatar_url': repository.owner.avatar_url, + "url": repository.html_url, + "name": repository.name, + "owner": { + "login": repository.owner.login, + "url": repository.owner.html_url, + "avatar_url": repository.owner.avatar_url, }, - 'latest_commit': self._format_commit(commits[0]) if commits else {}, + "latest_commit": self._format_commit(commits[0]) if commits else {}, } def _format_commit(self, commit: Commit): return { - 'sha': commit.sha, - 'url': commit.html_url, - 'message': commit.commit.message, - 'author_name': commit.commit.author.name, + "sha": commit.sha, + "url": commit.html_url, + "message": commit.commit.message, + "author_name": commit.commit.author.name, } diff --git a/examples/miniapps/flask-blueprints/githubnavigator/tests.py b/examples/miniapps/flask-blueprints/githubnavigator/tests.py index ddf4c256..b00eeeb5 100644 --- a/examples/miniapps/flask-blueprints/githubnavigator/tests.py +++ b/examples/miniapps/flask-blueprints/githubnavigator/tests.py @@ -20,44 +20,44 @@ 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', + html_url="repo1-url", + name="repo1-name", owner=mock.Mock( - login='owner1-login', - html_url='owner1-url', - avatar_url='owner1-avatar-url', + 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', + html_url="repo2-url", + name="repo2-name", owner=mock.Mock( - login='owner2-login', - html_url='owner2-url', - avatar_url='owner2-avatar-url', + 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')) + response = client.get(url_for("example.index")) assert response.status_code == 200 - assert b'Results found: 2' in response.data + 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"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 + 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): @@ -65,7 +65,7 @@ def test_index_no_results(client, app): github_client_mock.search_repositories.return_value = [] with app.container.github_client.override(github_client_mock): - response = client.get(url_for('example.index')) + response = client.get(url_for("example.index")) assert response.status_code == 200 - assert b'Results found: 0' in response.data + assert b"Results found: 0" in response.data diff --git a/examples/miniapps/flask/githubnavigator/application.py b/examples/miniapps/flask/githubnavigator/application.py index 39e62f98..e931a715 100644 --- a/examples/miniapps/flask/githubnavigator/application.py +++ b/examples/miniapps/flask/githubnavigator/application.py @@ -9,13 +9,13 @@ from . import views def create_app() -> Flask: container = Container() - container.config.from_yaml('config.yml') - container.config.github.auth_token.from_env('GITHUB_TOKEN') + container.config.from_yaml("config.yml") + container.config.github.auth_token.from_env("GITHUB_TOKEN") container.wire(modules=[views]) app = Flask(__name__) app.container = container - app.add_url_rule('/', 'index', views.index) + app.add_url_rule("/", "index", views.index) bootstrap = Bootstrap() bootstrap.init_app(app) diff --git a/examples/miniapps/flask/githubnavigator/services.py b/examples/miniapps/flask/githubnavigator/services.py index 9c6ff839..3e80a7ec 100644 --- a/examples/miniapps/flask/githubnavigator/services.py +++ b/examples/miniapps/flask/githubnavigator/services.py @@ -15,7 +15,7 @@ class SearchService: """Search for repositories and return formatted data.""" repositories = self._github_client.search_repositories( query=query, - **{'in': 'name'}, + **{"in": "name"}, ) return [ self._format_repo(repository) @@ -25,20 +25,20 @@ class SearchService: def _format_repo(self, repository: Repository): commits = repository.get_commits() return { - 'url': repository.html_url, - 'name': repository.name, - 'owner': { - 'login': repository.owner.login, - 'url': repository.owner.html_url, - 'avatar_url': repository.owner.avatar_url, + "url": repository.html_url, + "name": repository.name, + "owner": { + "login": repository.owner.login, + "url": repository.owner.html_url, + "avatar_url": repository.owner.avatar_url, }, - 'latest_commit': self._format_commit(commits[0]) if commits else {}, + "latest_commit": self._format_commit(commits[0]) if commits else {}, } def _format_commit(self, commit: Commit): return { - 'sha': commit.sha, - 'url': commit.html_url, - 'message': commit.commit.message, - 'author_name': commit.commit.author.name, + "sha": commit.sha, + "url": commit.html_url, + "message": commit.commit.message, + "author_name": commit.commit.author.name, } diff --git a/examples/miniapps/flask/githubnavigator/tests.py b/examples/miniapps/flask/githubnavigator/tests.py index a8618467..70d2fb03 100644 --- a/examples/miniapps/flask/githubnavigator/tests.py +++ b/examples/miniapps/flask/githubnavigator/tests.py @@ -20,44 +20,44 @@ 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', + html_url="repo1-url", + name="repo1-name", owner=mock.Mock( - login='owner1-login', - html_url='owner1-url', - avatar_url='owner1-avatar-url', + 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', + html_url="repo2-url", + name="repo2-name", owner=mock.Mock( - login='owner2-login', - html_url='owner2-url', - avatar_url='owner2-avatar-url', + 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('index')) + response = client.get(url_for("index")) assert response.status_code == 200 - assert b'Results found: 2' in response.data + 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"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 + 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): @@ -65,7 +65,7 @@ def test_index_no_results(client, app): github_client_mock.search_repositories.return_value = [] with app.container.github_client.override(github_client_mock): - response = client.get(url_for('index')) + response = client.get(url_for("index")) assert response.status_code == 200 - assert b'Results found: 0' in response.data + assert b"Results found: 0" in response.data diff --git a/examples/miniapps/flask/githubnavigator/views.py b/examples/miniapps/flask/githubnavigator/views.py index 5cccdad2..9061936d 100644 --- a/examples/miniapps/flask/githubnavigator/views.py +++ b/examples/miniapps/flask/githubnavigator/views.py @@ -13,13 +13,13 @@ def index( default_query: str = Provide[Container.config.default.query], default_limit: int = Provide[Container.config.default.limit.as_int()], ): - query = request.args.get('query', default_query) - limit = request.args.get('limit', default_limit, int) + query = request.args.get("query", default_query) + limit = request.args.get("limit", default_limit, int) repositories = search_service.search_repositories(query, limit) return render_template( - 'index.html', + "index.html", query=query, limit=limit, repositories=repositories,