Insert test page into DB not to violate constraint
authorsaper <saper@saper.info>
Sat, 7 Dec 2013 15:40:58 +0000 (16:40 +0100)
committerIAlex <codereview@emsenhuber.ch>
Sun, 15 Dec 2013 19:38:18 +0000 (19:38 +0000)
Page with id 0 does not exist at the time transaction
is committed to the database.

Unit tests with table constraints enabled
fail with:

1) RevisionStorageTest::testUserWasLastToEdit with data set #0 (3, true)
DBQueryError: A database error has occurred. Did you forget to run
maintenance/update.php after upgrading?  See:
https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script
Query: INSERT INTO "unittest_revision"
(rev_id,rev_page,rev_text_id /* more fields */ )
VALUES ('461','0','460' /* more fields */
Function: Revision::insertOn
Error: 23503 ERROR:  insert or update on table "unittest_revision"
violates foreign key constraint "ut_revision_rev_page_fkey"
DETAIL:  Key (rev_page)=(0) is not present in table "unittest_page".

/usr/home/saper/test/mytest/includes/db/Database.php:1111
/usr/home/saper/test/mytest/includes/db/DatabasePostgres.php:511
/usr/home/saper/test/mytest/includes/db/Database.php:1077
/usr/home/saper/test/mytest/includes/db/DatabasePostgres.php:871
/usr/home/saper/test/mytest/includes/Revision.php:1422
/usr/home/saper/test/mytest/tests/phpunit/includes/RevisionStorageTest.php:488
/usr/home/saper/test/mytest/tests/phpunit/MediaWikiTestCase.php:123
/usr/home/saper/test/mytest/tests/phpunit/MediaWikiPHPUnitCommand.php:80
/usr/home/saper/test/mytest/tests/phpunit/MediaWikiPHPUnitCommand.php:64
/usr/home/saper/test/mytest/tests/phpunit/phpunit.php:115

Change-Id: I653a8bccdaa748a9bea453cd1dbf609a30e1ff6f

tests/phpunit/includes/RevisionStorageTest.php

index 7e275a5..cd2a23a 100644 (file)
@@ -474,6 +474,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
                // create revisions -----------------------------
                $page = WikiPage::factory( Title::newFromText(
                        'RevisionStorageTest_testUserWasLastToEdit', $ns ) );
+               $page->insertOn( $dbw );
 
                # zero
                $revisions[0] = new Revision( array(