Как pytest выполняет метод tearDown при параллельном запуске теста?
Я столкнулся с проблемой при запуске pytest в parrellel, когда класс взаимодействует с mongodb. Когда pytest запускается время от времени, один из методов завершается сбоем без данных, возвращаемых из Монго. Я подозреваю, что происходит, когда метод teardown выполняется параллельно с другими методами, которые удаляют базу данных. Добавление time.sleep(2) в teardown решает проблему ложноположительного теста, но я надеюсь, что есть лучший способ справиться с этим. Какие-нибудь мысли?
`
TEST_COLLECTION = { ...}
class TestPage(unittest.TestCase):
def setup(self):
self.client = pymongo.MongoClient()
self.db = self.client[TEST_DB]
self.page = Page(db=TEST_DB)
def _setup_archive(self):
self.db[TEST_DB].insert_one(TEST_COLLECTION)
def _setup_delete(self):
self.db[TEST_DB].insert_one(TEST_COLLECTION)
def test_archive(self):
"""retrieves test document from mongo and compares to
document uploaded to s3 by page.archive_mongo"""
self._setup_archive()
self.page.archive_mongo(collections=TEST_COLLECTION)
mongo_doc = get_test_doc_from_database()
s3_doc = get_doc_from_s3()
self.assertEqual(mongo_doc, s3_doc)
def test_delete(self):
self.page.delete_collections()
deleted_collection = mongo.find({deleted_collection})
self.assertFalse(deleted_collection)
def tearDown(self):
self.client.drop_database(TEST_DB)
`