Activate test mode for database

This commit is contained in:
Michael 2020-05-15 15:05:17 +00:00
parent 8ca0186409
commit d71c3e0812
3 changed files with 14 additions and 1 deletions

View file

@ -720,7 +720,7 @@ function item_post(App $a) {
if ($return_path) {
DI::baseUrl()->redirect($return_path);
}
throw new HTTPException\InternalServerErrorException(DI::l10n()->t('Item wasn\'t stored. Last database error: %d %s', DBA::errorNo(), dba::errorMessage()));
throw new HTTPException\InternalServerErrorException(DI::l10n()->t('Item wasn\'t stored.'));
}
$datarray = Item::selectFirst(Item::ITEM_FIELDLIST, ['id' => $post_id]);

View file

@ -21,8 +21,10 @@
namespace Friendica\Database;
use Exception;
use Friendica\Core\Config\Cache;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Profiler;
@ -63,6 +65,7 @@ class Database
private $affected_rows = 0;
protected $in_transaction = false;
protected $in_retrial = false;
protected $testmode = false;
private $relation = [];
public function __construct(Cache $configCache, Profiler $profiler, LoggerInterface $logger, array $server = [])
@ -181,6 +184,10 @@ class Database
return $this->connected;
}
public function setTestmode(bool $test)
{
$this->testmode = $test;
}
/**
* Sets the logger for DBA
*
@ -630,6 +637,10 @@ class Database
$error = $this->error;
$errorno = $this->errorno;
if ($this->testmode) {
throw new Exception(DI::l10n()->t('Database error %d "%s" at "%s"', $errorno, $error, $this->replaceParameters($sql, $args)));
}
$this->logger->error('DB Error', [
'code' => $this->errorno,
'error' => $this->error,

View file

@ -71,6 +71,8 @@ class ApiTest extends DatabaseTest
/** @var Database $dba */
$dba = $this->dice->create(Database::class);
$dba->setTestmode(true);
/** @var IConfig $config */
$this->config = $this->dice->create(IConfig::class);