forked from wallabag/wallabag
Disable InstallCommand test for MySQL :(
This commit is contained in:
@ -10,6 +10,7 @@ use Doctrine\DBAL\Platforms\MySQLPlatform;
|
|||||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||||
use Doctrine\Persistence\ManagerRegistry;
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
use PHPUnit\Runner\BaseTestRunner;
|
||||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||||
use Symfony\Component\Console\Input\ArrayInput;
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
use Symfony\Component\Console\Output\NullOutput;
|
use Symfony\Component\Console\Output\NullOutput;
|
||||||
@ -48,6 +49,16 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
$this->markTestSkipped('PostgreSQL spotted: can\'t find a good way to drop current database, skipping.');
|
$this->markTestSkipped('PostgreSQL spotted: can\'t find a good way to drop current database, skipping.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($connection->getDatabasePlatform() instanceof MySQLPlatform) {
|
||||||
|
/*
|
||||||
|
* After upgrading to recent Doctrine version, we can't test anymore on MySQL without having side effect on the rest of the test suite.
|
||||||
|
* The best solution for now, is to disabled it...
|
||||||
|
*
|
||||||
|
* @see https://github.com/dmaicher/doctrine-test-bundle/issues/58
|
||||||
|
*/
|
||||||
|
$this->markTestSkipped('MySQL spotted: can\'t find a good way to isolate database actions, skipping.');
|
||||||
|
}
|
||||||
|
|
||||||
if ($connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
if ($connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||||
// Environnement variable useful only for sqlite to avoid the error "attempt to write a readonly database"
|
// Environnement variable useful only for sqlite to avoid the error "attempt to write a readonly database"
|
||||||
// We can't define always this environnement variable because pdo_mysql seems to use it
|
// We can't define always this environnement variable because pdo_mysql seems to use it
|
||||||
@ -73,7 +84,7 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
if ($databasePath && file_exists($databasePath)) {
|
if ($databasePath && file_exists($databasePath)) {
|
||||||
unlink($databasePath);
|
unlink($databasePath);
|
||||||
} else {
|
} elseif (BaseTestRunner::STATUS_SKIPPED !== $this->getStatus()) {
|
||||||
// Create a new client to avoid the error:
|
// Create a new client to avoid the error:
|
||||||
// Transaction commit failed because the transaction has been marked for rollback only.
|
// Transaction commit failed because the transaction has been marked for rollback only.
|
||||||
$client = static::createClient();
|
$client = static::createClient();
|
||||||
@ -90,11 +101,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
/** @var InstallCommand $command */
|
/** @var InstallCommand $command */
|
||||||
$command = $application->find('wallabag:install');
|
$command = $application->find('wallabag:install');
|
||||||
|
|
||||||
// enable calling other commands for MySQL only because rollback isn't supported
|
|
||||||
if (!$this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$command->disableRunOtherCommands();
|
|
||||||
}
|
|
||||||
|
|
||||||
$tester = new CommandTester($command);
|
$tester = new CommandTester($command);
|
||||||
$tester->setInputs([
|
$tester->setInputs([
|
||||||
'y', // dropping database
|
'y', // dropping database
|
||||||
@ -113,10 +119,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
public function testRunInstallCommandWithReset()
|
public function testRunInstallCommandWithReset()
|
||||||
{
|
{
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$this->markTestSkipped('Rollback are not properly handled for MySQL, skipping.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$application = new Application($this->getTestClient()->getKernel());
|
$application = new Application($this->getTestClient()->getKernel());
|
||||||
|
|
||||||
/** @var InstallCommand $command */
|
/** @var InstallCommand $command */
|
||||||
@ -146,10 +148,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
public function testRunInstallCommandWithDatabaseRemoved()
|
public function testRunInstallCommandWithDatabaseRemoved()
|
||||||
{
|
{
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$this->markTestSkipped('Rollback are not properly handled for MySQL, skipping.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// skipped SQLite check when database is removed because while testing for the connection,
|
// skipped SQLite check when database is removed because while testing for the connection,
|
||||||
// the driver will create the file (so the database) before testing if database exist
|
// the driver will create the file (so the database) before testing if database exist
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof SqlitePlatform) {
|
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||||
@ -190,10 +188,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
public function testRunInstallCommandChooseResetSchema()
|
public function testRunInstallCommandChooseResetSchema()
|
||||||
{
|
{
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$this->markTestSkipped('Rollback are not properly handled for MySQL, skipping.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$application = new Application($this->getTestClient()->getKernel());
|
$application = new Application($this->getTestClient()->getKernel());
|
||||||
|
|
||||||
/** @var InstallCommand $command */
|
/** @var InstallCommand $command */
|
||||||
@ -218,16 +212,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
public function testRunInstallCommandChooseNothing()
|
public function testRunInstallCommandChooseNothing()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* [PHPUnit\Framework\Error\Warning (2)]
|
|
||||||
* filemtime(): stat failed for /home/runner/work/wallabag/wallabag/var/cache/tes_/ContainerNVNxA24/appAppKernelTestDebugContainer.php
|
|
||||||
*
|
|
||||||
* I don't know from where the "/tes_/" come from, it should be "/test/" instead ...
|
|
||||||
*/
|
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$this->markTestSkipped('That test is failing when using MySQL when clearing the cache (see code comment)');
|
|
||||||
}
|
|
||||||
|
|
||||||
$application = new Application($this->getTestClient()->getKernel());
|
$application = new Application($this->getTestClient()->getKernel());
|
||||||
|
|
||||||
// drop database first, so the install command won't ask to reset things
|
// drop database first, so the install command won't ask to reset things
|
||||||
@ -260,10 +244,6 @@ class InstallCommandTest extends WallabagCoreTestCase
|
|||||||
|
|
||||||
public function testRunInstallCommandNoInteraction()
|
public function testRunInstallCommandNoInteraction()
|
||||||
{
|
{
|
||||||
if ($this->getTestClient()->getContainer()->get(ManagerRegistry::class)->getConnection()->getDatabasePlatform() instanceof MySQLPlatform) {
|
|
||||||
$this->markTestSkipped('Rollback are not properly handled for MySQL, skipping.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$application = new Application($this->getTestClient()->getKernel());
|
$application = new Application($this->getTestClient()->getKernel());
|
||||||
|
|
||||||
/** @var InstallCommand $command */
|
/** @var InstallCommand $command */
|
||||||
|
|||||||
Reference in New Issue
Block a user