Unit testing the application
Unit testing in Python works by combining assert
statements into their own functions inside a class. This collection of testing functions inside the class is called a test case. Each function inside the test case should test only one thing, which is the main idea behind unit testing. Testing only one thing in your unit tests forces you to verify each piece of code individually and not gloss over any of the functionality of your code. If you write your unit tests correctly, you will end up with lots and lots of them. While this may seem overly verbose, it will save you from headaches down the road.
Before we can build our test cases, we need another configuration object specifically to set up the app for testing. In this configuration, we will use the Python tempfile
module in the standard library in order to create a test SQLite database in a file that will automatically delete itself when the tests are over. This allows us to guarantee that the tests will not...