A good test coverage for the backend would be ~90%. Some pieces of code like the communication with the runner is hard to test, however many of the individual components of the runner-manager.py and model.py modules could be tested (e.g. the priority queue, database usage, etc.) and the runner could also be spoofed to some extend by using flasks client object in test cases (e.g. heartbeats, failed state, etc.).
A good test coverage for the backend would be ~90%. Some pieces of code like the communication with the runner is hard to test, however many of the individual components of the runner-manager.py and model.py modules could be tested (e.g. the priority queue, database usage, etc.) and the runner could also be spoofed to some extend by using flasks client object in test cases (e.g. heartbeats, failed state, etc.).