Writing tests for our application
Let's put our knowledge of unittest and Tkinter to work and write some automated tests for our application. To get started, we need to create a test module. Make a directory called test inside the abq_data_entry package, and create the customary empty __init__.py file inside. We'll create all of our test modules inside this directory.
Testing the data model
Our CSVModel class is fairly self-contained apart from its need to read and write files. We'll need to mock out this functionality so that the tests don't disturb the filesystem. Since file operations are one of the more common things that need to be mocked out in a test, the mock module provides mock_open(), a Mock subclass ready-made to replace Python's open() method. When called, a mock_open object returns a mock file handle object, complete with support for the read(), write(), and readlines() methods.
Create a new file in the test directory called test_models...