Integration (end-to-end) Tests

This tests the entire application, end to end. The goal is to guarantee the stability of the application. When new code is added, integration tests should still pass with minimal effort.

class MySystem:
    external_system = ExternalSystemConnector()
    def handle_message(message):
        try:
            external_system.send_message(message)
            return True
        catch Exception as err:
            return False
            
def test_MySystem():
    system = MySystem()
    assert system.handle_message(good_message)
    assert not system.handle_message(bad_message)