This is a TO-DO command-line application that uses a programming approach called Test-Driven Development (TDD). The tests cover different types of testing, such as acceptance testing, unit testing, and regression testing.
The app saves data in the memory, so it is not lost even if you close the app. Additionally, I have created my own instance of a database using a JSON file. This helps to store data in a structured way, making it easy to retrieve and manage later.
App is using thread to run an instance of the TODOApp class. This test requires threading because it needs to simulate user input and verify output while testing the persistence of data in the app's database. Running the TODOApp class in a separate thread allows the test to send input to the app and verify its output while also checking whether data is correctly persisted in the database.
python -m todo
add buy milk
quit
python -m unittest discover -v
python -m unittest discover -k unit -v
python -m unittest discover -k acceptance