diff --git a/examples/miniapps/movie-lister/README.rst b/examples/miniapps/movie-lister/README.rst index 54a8e3a1..112ab5c6 100644 --- a/examples/miniapps/movie-lister/README.rst +++ b/examples/miniapps/movie-lister/README.rst @@ -39,8 +39,11 @@ The output should be something like this for each command: .. code-block:: bash - Francis Lawrence movies: [Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence')] - 2016 movies: [Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards'), Movie(title='The Jungle Book', year=2016, director='Jon Favreau')] + Francis Lawrence movies: + - Movie(title='The Hunger Games: Mockingjay - Part 2', year=2015, director='Francis Lawrence') + 2016 movies: + - Movie(title='Rogue One: A Star Wars Story', year=2016, director='Gareth Edwards') + - Movie(title='The Jungle Book', year=2016, director='Jon Favreau') Test ---- @@ -65,11 +68,11 @@ The output should be something like: Name Stmts Miss Cover ------------------------------------------ movies/__init__.py 0 0 100% - movies/__main__.py 10 10 0% + movies/__main__.py 13 13 0% movies/containers.py 9 0 100% movies/entities.py 7 1 86% movies/finders.py 26 13 50% movies/listers.py 8 0 100% movies/tests.py 24 0 100% ------------------------------------------ - TOTAL 84 24 71% + TOTAL 87 27 69% diff --git a/examples/miniapps/movie-lister/movies/__main__.py b/examples/miniapps/movie-lister/movies/__main__.py index b51c4010..8f168976 100644 --- a/examples/miniapps/movie-lister/movies/__main__.py +++ b/examples/miniapps/movie-lister/movies/__main__.py @@ -1,25 +1,27 @@ """Main module.""" -from .containers import ApplicationContainer +import sys + +from dependency_injector.wiring import Provide + +from .listers import MovieLister +from .containers import Container -def main(): - container = ApplicationContainer() +def main(lister: MovieLister = Provide[Container.lister]): + print('Francis Lawrence movies:') + for movie in lister.movies_directed_by('Francis Lawrence'): + print('\t-', movie) - container.config.from_yaml('config.yml') - container.config.finder.type.from_env('MOVIE_FINDER_TYPE') - - lister = container.lister() - - print( - 'Francis Lawrence movies:', - lister.movies_directed_by('Francis Lawrence'), - ) - print( - '2016 movies:', - lister.movies_released_in(2016), - ) + print('2016 movies:') + for movie in lister.movies_released_in(2016): + print('\t-', movie) if __name__ == '__main__': + container = Container() + container.config.from_yaml('config.yml') + container.config.finder.type.from_env('MOVIE_FINDER_TYPE') + container.wire(modules=[sys.modules[__name__]]) + main() diff --git a/examples/miniapps/movie-lister/movies/containers.py b/examples/miniapps/movie-lister/movies/containers.py index 0ffd7f16..9d30fbfb 100644 --- a/examples/miniapps/movie-lister/movies/containers.py +++ b/examples/miniapps/movie-lister/movies/containers.py @@ -5,7 +5,7 @@ from dependency_injector import containers, providers from . import finders, listers, entities -class ApplicationContainer(containers.DeclarativeContainer): +class Container(containers.DeclarativeContainer): config = providers.Configuration() diff --git a/examples/miniapps/movie-lister/movies/tests.py b/examples/miniapps/movie-lister/movies/tests.py index f6bfe81f..eea04c81 100644 --- a/examples/miniapps/movie-lister/movies/tests.py +++ b/examples/miniapps/movie-lister/movies/tests.py @@ -4,12 +4,12 @@ from unittest import mock import pytest -from .containers import ApplicationContainer +from .containers import Container @pytest.fixture def container(): - container = ApplicationContainer() + container = Container() container.config.from_dict({ 'finder': { 'type': 'csv',