mahara-contributors team mailing list archive
-
mahara-contributors team
-
Mailing list archive
-
Message #31203
[Bug 1515473] Re: 15.04 Unit tests fail using MySql
Okay, I found a few things going on here:
1. I put the "markTestSkipped" command in the "testRun()" method. So,
the "setup()" method still runs, unnecessarily, for the webservices
tests.
2. The WebServiceTestBase class fails to call parent::setup() during its
setup() method. That's what is causing this specific error.
3. Our phpunit infrastructure is a bit broken. It doesn't tear
everything down properly, so if you do "make phpunit" twice on the same
database, you get errors the second time when it tries to re-create
things that still exist. I think this is because we have some database
items that are not defined in our install.xml files. These are mostly
indexes and constraints that are too complex to specify in xmldb format,
so they're created directly with SQL queries during installation. But
this isn't a MySQL-specific problem. It happens in Postgres too.
I'll put in patches right now to fix 1 & 2 since they're one-liners.
Number 3 will need to go in a different bug I think.
Cheers,
Aaron
--
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1515473
Title:
15.04 Unit tests fail using MySql
Status in Mahara:
New
Status in Mahara 15.04 series:
New
Status in Mahara 15.10 series:
New
Status in Mahara 16.04 series:
New
Bug description:
Mahara:
$config->version = 2015030419;
$config->series = '15.04';
$config->release = '15.04.4';
DB: mysql 5.5
(mysql Ver 14.14 Distrib 5.5.46, for debian-linux-gnu (x86_64) using readline 6.3)
When running unit tests on a vanilla Mahara 15.04.4 with a mysql
database, 3 tests fail:
Configuration read from /var/www/palnet/mahara/phpunit.xml
........EEE
Time: 39.5 seconds, Memory: 36.00Mb
There were 3 errors:
1) WebServiceGroupTest::testRun
SQLException: Failed to get a recordset: mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2' at line 1] in EXECUTE("SELECT * FROM "tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2")
Command was: SELECT * FROM "tst_config" WHERE "field" = ? and values was (webservice_enabled)
/var/www/palnet/mahara/htdocs/lib/dml.php:480
/var/www/palnet/mahara/htdocs/lib/dml.php:314
/var/www/palnet/mahara/htdocs/lib/dml.php:291
/var/www/palnet/mahara/htdocs/lib/mahara.php:885
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceTestBase.class.php:85
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceGroupTest.php:28
2) WebServiceInstitutionTest::testRun
SQLException: Failed to get a recordset: mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2' at line 1] in EXECUTE("SELECT * FROM "tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2")
Command was: SELECT * FROM "tst_config" WHERE "field" = ? and values was (webservice_enabled)
/var/www/palnet/mahara/htdocs/lib/dml.php:480
/var/www/palnet/mahara/htdocs/lib/dml.php:314
/var/www/palnet/mahara/htdocs/lib/dml.php:291
/var/www/palnet/mahara/htdocs/lib/mahara.php:885
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceTestBase.class.php:85
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceInstitutionTest.php:28
3) WebServiceUserTest::testRun
SQLException: Failed to get a recordset: mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2' at line 1] in EXECUTE("SELECT * FROM "tst_config" WHERE "field" = 'webservice_enabled' LIMIT 2")
Command was: SELECT * FROM "tst_config" WHERE "field" = ? and values was (webservice_enabled)
/var/www/palnet/mahara/htdocs/lib/dml.php:480
/var/www/palnet/mahara/htdocs/lib/dml.php:314
/var/www/palnet/mahara/htdocs/lib/dml.php:291
/var/www/palnet/mahara/htdocs/lib/mahara.php:885
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceTestBase.class.php:85
/var/www/palnet/mahara/htdocs/webservice/tests/phpunit/WebServiceUserTest.php:28
FAILURES!
Tests: 11, Assertions: 21, Errors: 3.
make: *** [phpunit] Error 2
-----------------------------------------------------------------------------------------------
On the same vanilla Mahara 15.04.4, the unit tests pass using postgres:
PHPUnit 4.3.4 by Sebastian Bergmann.
Configuration read from /var/www/palnet/mahara/phpunit.xml
........SSS
Time: 38.13 seconds, Memory: 35.25Mb
OK, but incomplete, skipped, or risky tests!
Tests: 11, Assertions: 21, Skipped: 3.
To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1515473/+subscriptions
References