Update project tooling, accessible with a Makefile: * `make test`: Run basic test suite * `make lint`: Run PEP8 / Pyflakes quality tests * `make coverage`: Run full integration tests and measure code coverage * `make qa`: Run lint and coverage * `make docs`: Build Sphinx documentation * `make sdist`: Create a source distribution and run quality checks on it * `make release`: Release to PyPI This includes: * Updating source to avoid PEP8 / PyFlakes issues * Running coverage in TravisCI and sending reports to coveralls.io * Splitting README.rst into several files, and including in Sphinx docs * Adjusting long description in setup.py * Adding some badges * Adding Read The Docs support * Adding contribution and author documentation * Adding tests for Django models, database access, and fixture loading using new models in `testapp` along with South and Django migrations * Updating `runtests.sh` * Adding PostgreSQL and MySQL tests, to reproduce #197 in TravisCI
Default tests use SQLite, and something about TravisCI makes some tests pass w/ SQLite that fail locally (like bug #197). Run with MySQL and PostgreSQL, which does duplicate the test failures. Add a --noinput option to runtests.sh, so that duplicate test databases can be auto-deleted.
The new runtest.sh had several issues: * use unset rather than set to empty string to reset environment * exports are needed to set the test environment * test exit code of test command, not the always successful "cat" command. * --with-profile had too much output, and there's not a good way to restrict it from the command line. Adding --profile-restrict "less_output" restricts it to the summary line.
In runtests.sh, redirect stdout and stderr to temporary files, and print the captured output on errors rather than rerunning the tests. Add a -v option to runtests.sh, to display test output while the tests are running, instead of only on errors. Adjust TravisCI and tox configuration to display verbose output in TravisCI runs, and not run coveralls locally.