diff --git a/examples/miniapps/django/README.rst b/examples/miniapps/django/README.rst
index 97ed23a9..21bc2a6e 100644
--- a/examples/miniapps/django/README.rst
+++ b/examples/miniapps/django/README.rst
@@ -1,5 +1,5 @@
-Dependency Injector + Sanic Example
-=====================================
+Django + Dependency Injector Example
+====================================
Application ``githubnavigator`` is a `Django `_ +
`Dependency Injector `_ example application.
@@ -20,66 +20,53 @@ Install requirements:
pip install -r requirements.txt
+Run migrations:
+
+.. code-block:: bash
+
+ python manage.py migrate
+
To run the application do:
.. code-block:: bash
- export GIPHY_API_KEY=wBJ2wZG7SRqfrU9nPgPiWvORmloDyuL0
- python -m giphynavigator
+ python manage.py runserver
The output should be something like:
.. code-block::
- [2020-09-23 18:16:31 -0400] [48258] [INFO] Goin' Fast @ http://0.0.0.0:8000
- [2020-09-23 18:16:31 -0400] [48258] [INFO] Starting worker [48258]
+ Watching for file changes with StatReloader
+ Performing system checks...
-After that visit http://127.0.0.1:8000/ in your browser or use CLI command (``curl``, ``httpie``,
-etc). You should see something like:
+ System check identified no issues (0 silenced).
+ October 05, 2020 - 03:17:05
+ Django version 3.1.2, using settings 'githubnavigator.settings'
+ Starting development server at http://127.0.0.1:8000/
+ Quit the server with CONTROL-C.
-.. code-block:: json
-
- {
- "query": "Dependency Injector",
- "limit": 10,
- "gifs": [
- {
- "url": "https://giphy.com/gifs/boxes-dependent-swbf2-6Eo7KzABxgJMY"
- },
- {
- "url": "https://giphy.com/gifs/depends-J56qCcOhk6hKE"
- },
- {
- "url": "https://giphy.com/gifs/web-series-ccstudios-bro-dependent-1lhU8KAVwmVVu"
- },
- {
- "url": "https://giphy.com/gifs/TheBoysTV-friends-friend-weneedeachother-XxR9qcIwcf5Jq404Sx"
- },
- {
- "url": "https://giphy.com/gifs/netflix-a-series-of-unfortunate-events-asoue-9rgeQXbwoK53pcxn7f"
- },
- {
- "url": "https://giphy.com/gifs/black-and-white-sad-skins-Hs4YzLs2zJuLu"
- },
- {
- "url": "https://giphy.com/gifs/always-there-for-you-i-am-here-PlayjhCco9jHBYrd9w"
- },
- {
- "url": "https://giphy.com/gifs/stream-famous-dollar-YT2dvOByEwXCdoYiA1"
- },
- {
- "url": "https://giphy.com/gifs/i-love-you-there-for-am-1BhGzgpZXYWwWMAGB1"
- },
- {
- "url": "https://giphy.com/gifs/life-like-twerk-9hlnWxjHqmH28"
- }
- ]
- }
+After that visit http://127.0.0.1:8000/ in your browser.
.. note::
- To create your own Giphy API key follow this
- `guide `_.
+
+ Github has a rate limit. When the rate limit is exceed you will see an exception
+ ``github.GithubException.RateLimitExceededException``. For unauthenticated requests, the rate
+ limit allows for up to 60 requests per hour. To extend the limit to 5000 requests per hour you
+ need to set personal access token.
+
+ It's easy:
+
+ - Follow this `guide `_ to create a token.
+ - Set a token to the environment variable:
+
+ .. code-block:: bash
+
+ export GITHUB_TOKEN=
+
+ - Restart the app with ``python manage.py runserver``
+
+ `Read more on Github rate limit `_
Test
----
@@ -90,28 +77,34 @@ To run the tests do:
.. code-block:: bash
- py.test giphynavigator/tests.py --cov=giphynavigator
+ coverage run --source='.' manage.py test && coverage report
The output should be something like:
.. code-block::
- platform darwin -- Python 3.8.3, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
- plugins: cov-2.10.0, sanic-1.6.1
- collected 3 items
+ Creating test database for alias 'default'...
+ System check identified no issues (0 silenced).
+ ..
+ ----------------------------------------------------------------------
+ Ran 2 tests in 0.037s
- giphynavigator/tests.py ... [100%]
-
- ---------- coverage: platform darwin, python 3.8.3-final-0 -----------
+ OK
+ Destroying test database for alias 'default'...
Name Stmts Miss Cover
---------------------------------------------------
- giphynavigator/__init__.py 0 0 100%
- giphynavigator/__main__.py 4 4 0%
- giphynavigator/application.py 12 0 100%
- giphynavigator/containers.py 6 0 100%
- giphynavigator/giphy.py 14 9 36%
- giphynavigator/handlers.py 10 0 100%
- giphynavigator/services.py 9 1 89%
- giphynavigator/tests.py 34 0 100%
+ githubnavigator/__init__.py 4 0 100%
+ githubnavigator/asgi.py 4 4 0%
+ githubnavigator/containers.py 7 0 100%
+ githubnavigator/services.py 14 0 100%
+ githubnavigator/settings.py 23 0 100%
+ githubnavigator/urls.py 3 0 100%
+ githubnavigator/wsgi.py 4 4 0%
+ manage.py 12 2 83%
+ web/__init__.py 0 0 100%
+ web/apps.py 7 0 100%
+ web/tests.py 28 0 100%
+ web/urls.py 3 0 100%
+ web/views.py 11 0 100%
---------------------------------------------------
- TOTAL 89 14 84%
+ TOTAL 120 10 92%
diff --git a/examples/miniapps/django/requirements.txt b/examples/miniapps/django/requirements.txt
index ff503ef2..71ef3239 100644
--- a/examples/miniapps/django/requirements.txt
+++ b/examples/miniapps/django/requirements.txt
@@ -2,3 +2,4 @@ dependency-injector
django
django-bootstrap4
pygithub
+coverage