Rollback failed transactions in TestCase.php to not break followup tests

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2021-01-08 11:45:02 +01:00
Родитель dc00c8ac31
Коммит f0c6cfde3a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: CC42AC2A7F0E56D8
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -261,7 +261,12 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase {
}
$dataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data-autotest');
if (self::$wasDatabaseAllowed && \OC::$server->getDatabaseConnection()) {
$queryBuilder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
$db = \OC::$server->getDatabaseConnection();
if ($db->inTransaction()) {
$db->rollBack();
throw new \Exception('There was a transaction still in progress and needed to be rolled back. Please fix this in your test.');
}
$queryBuilder = $db->getQueryBuilder();
self::tearDownAfterClassCleanShares($queryBuilder);
self::tearDownAfterClassCleanStorages($queryBuilder);