Po přečtení dokumentů SQLAlchemy a nějakém pohrávání si s instancí db jsem konečně dostal řešení. Přidejte db.get_engine(self.app).dispose()
v tearDown()
aby to vypadalo takto:
def tearDown(self):
db.session.remove()
db.drop_all()
db.get_engine(self.app).dispose()
self._ctx.pop()