Table of Contents:
  • Getting Django set up using a functional test
  • Extending our functional test using the unittest module
  • Testing a simple home page with unit tests
  • What are we doing with all these tests?
  • Saving user input
  • Getting to the minimum viable site
  • Prettification : layout and styling, and what to test about it
  • Testing deployment using a staging site
  • Automating deployment with fabric
  • Input validation and test organisation
  • A simple form
  • More advanced forms
  • Dipping our toes, very tentatively, into JavaScript
  • Deploying our new code
  • User authentication, integrating third-party plugins, and mocking with JavaScript
  • Server-side authentication and mocking in Python
  • Test fixtures, logging, and server-side debugging
  • Finishing "my lists" : outside-in TDD
  • Test isolation, and "listening to your tests"
  • Continuous integration (CI)
  • The token social bit, the page pattern, and an exercise for the reader
  • Fast tests, slow tests, and hot lava
  • Obey the testing goat!
  • Appendix A: PythonAnywhere
  • Appendix B: Django class-based views
  • Appendix C: Provisioning with ansible
  • Appendix D: Testing database migrations
  • Appendix E: What to do next
  • Appendix F: Cheat sheet