Setelah membaca dokumen SQLAlchemy dan mengutak-atik instance db, saya akhirnya mendapatkan solusinya. Tambahkan db.get_engine(self.app).dispose()
di tearDown()
sehingga terlihat seperti:
def tearDown(self):
db.session.remove()
db.drop_all()
db.get_engine(self.app).dispose()
self._ctx.pop()