Я столкнулся с странной ситуацией. Я пишу несколько тестов для своей программы. Программа написана для работы в sqllite или postgresqul в зависимости от предпочтений. Теперь я пишу свой тестовый код, используя unittest. В основном, что я делаю:
def setUp(self):
"""
Reset the database before each test.
"""
if os.path.exists(root_storage):
shutil.rmtree(root_storage)
reset_database()
initialize_startup()
self.project_service = ProjectService()
self.structure_helper = FilesHelper()
user = model.User("test_user", "test_pass", "[email protected]",
True, "user")
self.test_user = dao.store_entity(user)
В setUp я удаляю любые существующие папки (созданные некоторыми тестами), тогда я reset моя база данных (в основном, каскадные таблицы), затем я снова инициализирую базу данных и создаю некоторые службы, которые будут использоваться для тестирования.
def tearDown(self):
"""
Remove project folders and clean up database.
"""
created_projects = dao.get_projects_for_user(self.test_user.id)
for project in created_projects:
self.structure_helper.remove_project_structure(project.name)
reset_database()
Срыв вниз делает то же самое, кроме создания сервисов, потому что этот тестовый модуль является частью одного и того же пакета с другими модулями, и я не хочу, чтобы некоторые вещи оставались позади некоторыми тестами.
Теперь все мои тесты отлично работают с sqllite. С postgresql я столкнулся с очень странной ситуацией: в какой-то момент выполнения, который на самом деле отличается от прогона до небольшого отрезка (например, один или два дополнительных вызова), программа просто останавливается. Я имею в виду, что никакая ошибка не генерируется, исключение не генерируется, программа просто останавливается.
Теперь единственное, о чем я могу думать, это то, что как-то я забываю, что соединение открылось где-то, и после того, как я в это время, и что-то происходит. Но у меня много соединений, поэтому, прежде чем я начну идти через весь этот код, я был бы признателен за некоторые предложения/мнения.
Что может вызвать такое поведение? С чего начать?
С уважением, Богдан