Testing

See: https://realpython.com/blog/python/testing-in-django-part-1-best-practices-and-examples/

Fixtures

  • Django fixtures
    • https://docs.djangoproject.com/en/dev/topics/testing/tools/#topics-testing-fixtures
    • https://docs.djangoproject.com/en/dev/howto/initial-data/
# Dump fixtures
./manage.py dumpdata --pks 1,2,3
./manage.py dumpdata courts --indent 4 --output oldp/apps/courts/fixtures/courts.json
./manage.py dumpdata laws --indent 4 --output oldp/apps/laws/fixtures/laws.json
./manage.py dumpdata cases --indent 4 --output oldp/apps/cases/fixtures/cases.json


# Load fixtures
./manage.py loaddata oldp/apps/laws/fixtures/laws/laws.json

./manage.py loaddata oldp/apps/courts/fixtures/locations/countries.json
./manage.py loaddata oldp/apps/courts/fixtures/locations/states.json
./manage.py loaddata oldp/apps/courts/fixtures/locations/cities.json
./manage.py loaddata oldp/apps/courts/fixtures/courts/courts.json

./manage.py loaddata oldp/apps/cases/fixtures/cases/cases.json

OLDP

  • Courts: BGH+EUGH+AG…
  • Laws: GG, BGB, with table…
  • Cases:
    • bgh,

App tests

  • db queries (get + update + create)
  • processing tests

Browser Tests

  • WebDriver / Selenium (firefox driver)
  • test with local db + production db (ssh tunnel to production server)

Coverage Integration

export DJANGO_CONFIGURATION=Test
coverage run --source='.' manage.py test

# stdout report
coverage report --omit="env/*"

# html report
coverage html --omit="env/*"