To run integration tests it would be better to rely on a client application, which communicates with caterpillar over d-bus instead of only testing the outcome of its actions.
With #5 the integration test for "there is no update" does not work anymore, as caterpillar has been turned into a long-running application and the tests relied on it exiting at some point.