Installation
$ [sudo] pip install django-app-test
Benefits
learn Django with minimum code. 1 example = 1 app folder. no need project
How it works
tests.py
required
optional app files:
fixtures/
templates/
templatetags/
forms.py
models.py
settings.py
views.py
urls.py
output temp folder:
manage.py
app/__init__.py
app/apps.py
app/... # app optional files
app/tests.py # required
executed management commands:
python manage.py makemigrations app # if models.py exists
python manage.py migrate app # if models.py exists
python manage.py loaddata fixtures/* # if fixtures/ exists
python manage.py test app
settings.py
DJANGO_SETTINGS_MODULE
by default is django_app_test_settings
customize:
a) create settings.py
b) export DJANGO_SETTINGS_MODULE="custom_settings"
Scripts usage
command | usage |
---|---|
django-app-test |
usage: django-app-test path |
Examples
models.py
from django.db import models
from taggit.managers import TaggableManager
class MyModel(models.Model):
...
settings.py
INSTALLED_APPS = [
'app',
'taggit',
'django.contrib.auth',
'django.contrib.contenttypes',
]
SECRET_KEY="<SECRET_KEY>"
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': 'dbname'}}
tests.py
from .models import MyModel
...
What's Next?
create Makefile
:
all:
django-app-test .
create Makefile
for every folder:
all:
find "$(CURDIR)" -name "tests.py" -print0 | xargs -0 -L 1 -I{} sh -c 'set "$$(dirname "$$0")"/Makefile; echo "all:" > "$$1"; echo " @django-app-test ." >> "$$1";echo $$1' {}