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 further down the road.
In this configuration, we will use SQLLite in the memory engine database, which allows us to guarantee that the tests will not interfere with our actual database. Also, the configuration disables WTForms' CSRF checks, to allow us to submit forms...