QualityΒΆ

Quality management is a very important part of development, you should never forget it and always consider it for each application feature and behavior.

Your application project will have many quality tools already configured but only for the backend side since frontend is pretty basic.

The included and configured tools are:

  • Pytest with its Django plugin. All tests are written in a specific directory tests/ at the root of the repository, you can easily run them all with:

    make test
    
  • factory_boy the companion of Pytest to manage model objects;

  • Flake8 to check about PEP8 in your source code (application and tests);

  • pyquery an useful library to parse HTML in your tests. It implements the same DOM traversing that jQuery did with the power of lxml;

  • freezegun an useful library to fix datetime in your tests, commonly used with code that use things like datetime.datetime.now() so you can easily test against date without to predict or monkey patch them;

  • Tox a powerful tool to launch your quality tasks in various environment. It is commonly used to launch your quality task suite before submitting something new and ensure it works on everything you support like Python or Django multiple versions;

Finally a Makefile task quality is included and is a meta task that gather all other quality task like test, flake, migration checking, release check and dependencies freeze.

The dependencies freeze build a frozen.txt file which contains all dependency versions for your requirements defined in setup.cfg, it can help developers to find package versions that are ensured to work in case of conflict with other packages requirements.