← Back to team overview

mahara-contributors team mailing list archive

[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