Ejegg has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/350117 )

Change subject: Update CiviFixtures to use civicrm_api3.
......................................................................


Update CiviFixtures to use civicrm_api3.

After trying latest Civi I have been hitting problems with Message:

mysqli_free_result() [function.mysqli-free-result]: Couldn't fetch mysqli_result

After much distress I spotted a reference to suggest that cloning a DAO could 
cause it to be converted
to a serialized object rather than a true object. Replacing the class api calls 
with civicrm_api3 calls fixed this
locally for me. I have not fixed all references, only the ones in the test 
suite as they can be done & reviewed fairly
quickly since passing tests should mean they are correct. I will do the others 
in follow ups.

There is a required update to make this pass tests on the civi repo.

The PEAR globals is to move a enotice handling routine from being a civi hack 
to within our test suite.
I don't expect it would affect live code (when we revert the hack from our civi 
code base)

Change-Id: I9530ad61020cde1b5a2e3bbe12d48c3ee968ff38
---
M sites/all/modules/offline2civicrm/tests/ContributionConversionTest.php
M sites/all/modules/wmf_audit/tests/AdyenAuditTest.php
M sites/all/modules/wmf_audit/tests/AmazonAuditTest.php
M sites/all/modules/wmf_audit/tests/AstroPayAuditTest.php
M sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php
M sites/all/modules/wmf_civicrm/tests/phpunit/ImportMessageTest.php
M sites/all/modules/wmf_civicrm/tests/phpunit/PhoneImportTest.php
M sites/all/modules/wmf_civicrm/tests/phpunit/RelationshipTest.php
M sites/all/modules/wmf_civicrm/tests/phpunit/SoftCreditTest.php
M sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php
M sites/all/modules/wmf_common/tests/phpunit/WmfTransactionTest.php
M sites/all/modules/wmf_communication/tests/Job.test
12 files changed, 75 insertions(+), 150 deletions(-)

Approvals:
  jenkins-bot: Verified
  Ejegg: Looks good to me, approved



diff --git 
a/sites/all/modules/offline2civicrm/tests/ContributionConversionTest.php 
b/sites/all/modules/offline2civicrm/tests/ContributionConversionTest.php
index da00108..d6a91a0 100644
--- a/sites/all/modules/offline2civicrm/tests/ContributionConversionTest.php
+++ b/sites/all/modules/offline2civicrm/tests/ContributionConversionTest.php
@@ -55,14 +55,8 @@
 
         $contributions = wmf_civicrm_get_contributions_from_gateway_id( 
$this->transaction->gateway, $this->transaction->gateway_txn_id );
 
-        $api = civicrm_api_classapi();
-        $api->ContributionRecur->Get( array(
-            'id' => $contributions[0]['contribution_recur_id'],
-
-            'version' => 3,
-        ) );
-        $contribution_recur = $api->values[0];
-        $this->assertNotNull( $contribution_recur->cancel_date,
+        $contribution_recur = 
$this->callAPISuccessGetSingle('ContributionRecur', array('id' => 
$contributions[0]['contribution_recur_id']));
+        $this->assertNotNull( $contribution_recur['cancel_date'],
             "Marked as cancelled" );
     }
 }
diff --git a/sites/all/modules/wmf_audit/tests/AdyenAuditTest.php 
b/sites/all/modules/wmf_audit/tests/AdyenAuditTest.php
index f33f89c..ada30de 100644
--- a/sites/all/modules/wmf_audit/tests/AdyenAuditTest.php
+++ b/sites/all/modules/wmf_audit/tests/AdyenAuditTest.php
@@ -80,17 +80,11 @@
        }
 
        public function tearDown() {
-               $api = civicrm_api_classapi();
                foreach( $this->contribution_ids as $id ) {
-                       $api->Contribution->Delete( array(
-                               'id' => $id,
-                               'version' => 3,
-                       ) );
+      $this->callAPISuccess('Contribution', 'delete', array('id' => $id));
                }
-               $api->Contact->Delete( array(
-                       'id' => $this->contact_id,
-                       'version' => 3,
-               ) );
+
+    $this->callAPISuccess('Contact', 'delete', array('id' => 
$this->contact_id));
                parent::tearDown();
        }
 
diff --git a/sites/all/modules/wmf_audit/tests/AmazonAuditTest.php 
b/sites/all/modules/wmf_audit/tests/AmazonAuditTest.php
index 44f8626..9b90bb5 100644
--- a/sites/all/modules/wmf_audit/tests/AmazonAuditTest.php
+++ b/sites/all/modules/wmf_audit/tests/AmazonAuditTest.php
@@ -66,15 +66,8 @@
        }
 
        public function tearDown() {
-               $api = civicrm_api_classapi();
-               $api->Contribution->Delete( array(
-                       'id' => $this->contribution_id,
-                       'version' => 3,
-               ) );
-               $api->Contact->Delete( array(
-                       'id' => $this->contact_id,
-                       'version' => 3,
-               ) );
+    $this->callAPISuccess('Contribution', 'delete', array('id' => 
$this->contribution_id));
+    $this->callAPISuccess('Contact', 'delete', array('id' => 
$this->contact_id));
                parent::tearDown();
        }
 
diff --git a/sites/all/modules/wmf_audit/tests/AstroPayAuditTest.php 
b/sites/all/modules/wmf_audit/tests/AstroPayAuditTest.php
index 9057159..ebc5d92 100644
--- a/sites/all/modules/wmf_audit/tests/AstroPayAuditTest.php
+++ b/sites/all/modules/wmf_audit/tests/AstroPayAuditTest.php
@@ -75,17 +75,8 @@
        }
 
        public function tearDown() {
-               $api = civicrm_api_classapi();
-               $api->Contribution->Delete( array(
-                       'id' => $this->contribution_id,
-
-                       'version' => 3,
-               ) );
-               $api->Contact->Delete( array(
-                       'id' => $this->contact_id,
-
-                       'version' => 3,
-               ) );
+    $this->callAPISuccess('Contribution', 'delete', array('id' => 
$this->contribution_id));
+    $this->callAPISuccess('Contact', 'delete', array('id' => 
$this->contact_id));
                parent::tearDown();
        }
 
diff --git a/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php 
b/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php
index e785a8e..9261c3b 100644
--- a/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php
+++ b/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php
@@ -21,29 +21,23 @@
      * @return CiviFixtures
      */
     static function create() {
+        civicrm_initialize();
         $out = new CiviFixtures();
 
-        $api = civicrm_api_classapi();
-
-        $contact_params = array(
-            'contact_type' => 'Individual',
-            'first_name' => 'Test',
-            'last_name' => 'Es',
-
-            'version' => 3,
-        );
-        $api->Contact->Create( $contact_params );
-        $out->contact_id = $api->id;
+        $individual = civicrm_api3('Contact', 'Create', array(
+          'contact_type' => 'Individual',
+          'first_name' => 'Test',
+          'last_name' => 'Es'
+        ));
+        $out->contact_id = $individual['id'];
 
         $out->org_contact_name = 'Test DAF ' . mt_rand();
-        $contact_params = array(
-            'contact_type' => 'Organization',
-            'organization_name' => $out->org_contact_name,
 
-            'version' => 3,
-        );
-        $api->Contact->Create( $contact_params );
-        $out->org_contact_id = $api->id;
+        $organization = civicrm_api3('Contact', 'Create', array(
+          'contact_type' => 'Organization',
+          'organization_name' => $out->org_contact_name,
+        ));
+        $out->org_contact_id = $organization['id'];
 
         $out->recur_amount = '2.34';
         $out->subscription_id = 'SUB-' . mt_rand();
@@ -67,43 +61,30 @@
 
             'version' => 3,
         );
-        $api->ContributionRecur->Create( $subscription_params );
-        $out->contribution_recur_id = $api->id;
+        $contributionRecur = civicrm_api3('ContributionRecur', 'Create', 
$subscription_params);
+        $out->contribution_recur_id = $contributionRecur['id'];
 
-        // FIXME: Can't generate random groups because of caching in
-        // CRM_Core_Pseudoconstant.  Make temp and random again once we're
-        // using Civi 4.6's buildOptions.
         $out->contact_group_name = 'test_thrilled_demographic';
-        $success = $api->Group->Get( array(
-            'title' => $out->contact_group_name,
-            'version' => 3,
-        ) );
-        if ( $success && $api->count === 1 ) {
-            $out->contact_group_id = $api->id;
+        $group = civicrm_api3('Group', 'get', array('title' => 
$out->contact_group_name));
+
+        if ($group['count'] === 1 ) {
+            $out->contact_group_id = $group['id'];
         } else {
-            $success = $api->Group->Create( array(
-                'title' => $out->contact_group_name,
-                'version' => 3,
-            ) );
-            if ( !$success ) {
-                throw new Exception( $api->errorMsg() );
-            }
-            $out->contact_group_id = $api->id;
+            $group = civicrm_api3('Group', 'create', array(
+              'title' => $out->contact_group_name,
+              'name' => $out->contact_group_name,
+            ));
+            $out->contact_group_id = $group['id'];
         }
 
         return $out;
     }
 
-    // FIXME: probably need control over destruction order to not conflict 
with stuff added by test cases
+  /**
+   * Tear down function.
+   */
     public function __destruct() {
-        $api = civicrm_api_classapi();
-        $api->ContributionRecur->Delete( array(
-            'id' => $this->contribution_recur_id,
-            'version' => 3,
-        ) );
-        $api->Contact->Delete( array(
-            'id' => $this->contact_id,
-            'version' => 3,
-        ) );
+        civicrm_api3('ContributionRecur', 'delete', array('id' => 
$this->contribution_recur_id));
+        civicrm_api3('Contact', 'delete', array('id' => $this->contact_id));
     }
 }
diff --git a/sites/all/modules/wmf_civicrm/tests/phpunit/ImportMessageTest.php 
b/sites/all/modules/wmf_civicrm/tests/phpunit/ImportMessageTest.php
index 236b1c5..9597932 100644
--- a/sites/all/modules/wmf_civicrm/tests/phpunit/ImportMessageTest.php
+++ b/sites/all/modules/wmf_civicrm/tests/phpunit/ImportMessageTest.php
@@ -48,6 +48,7 @@
     );
 
     public function setUp() {
+        parent::setUp();
         civicrm_api3( 'OptionValue', 'create', array(
             'option_group_id' => WMF_CAMPAIGNS_OPTION_GROUP_NAME,
             'label' => ImportMessageTest_campaign,
@@ -57,10 +58,7 @@
 
     public function tearDown() {
         if ( $this->contribution_id ) {
-            civicrm_api_classapi()->Contribution->Delete( array(
-                'id' => $this->contribution_id,
-                'version' => '3',
-            ) );
+          $this->callAPISuccess('Contribution', 'delete', array('id' => 
$this->contribution_id));
         }
         parent::tearDown();
     }
@@ -88,12 +86,7 @@
         }
 
         if ( !empty( $expected['contact'] ) ) {
-            $api = civicrm_api_classapi();
-            $api->Contact->Get( array(
-                'id' => $contribution['contact_id'],
-                'version' => 3,
-            ) );
-            $contact = (array) $api->values[0];
+            $contact = $this->callAPISuccessGetSingle('Contact', array('id' => 
$contribution['contact_id']));
             $renamedFields = array('prefix' => 1, 'suffix' => 1);
             $this->assertEquals( array_diff_key($expected['contact'], 
$renamedFields), array_intersect_key( $expected['contact'], $contact ) );
             foreach (array_keys($renamedFields) as $renamedField) {
@@ -476,14 +469,8 @@
         );
         $contribution = wmf_civicrm_contribution_message_import( $msg );
 
-        $api = civicrm_api_classapi();
-        $api->GroupContact->Get( array(
-            'contact_id' => $contribution['contact_id'],
-
-            'version' => 3,
-        ) );
-        $this->assertEquals( 1, count( $api->values ) );
-        $this->assertEquals( $fixtures->contact_group_id, 
$api->values[0]->group_id );
+        $group = $this->callAPISuccessGetSingle('GroupContact', 
array('contact_id' => $contribution['contact_id']));
+        $this->assertEquals($fixtures->contact_group_id, $group['group_id']);
     }
 
   /**
diff --git a/sites/all/modules/wmf_civicrm/tests/phpunit/PhoneImportTest.php 
b/sites/all/modules/wmf_civicrm/tests/phpunit/PhoneImportTest.php
index 34204d0..63cafcb 100644
--- a/sites/all/modules/wmf_civicrm/tests/phpunit/PhoneImportTest.php
+++ b/sites/all/modules/wmf_civicrm/tests/phpunit/PhoneImportTest.php
@@ -9,7 +9,7 @@
     public function testPhoneImport() {
       $this->refreshStripFunction();
 
-        $phone = '555-555-5555';
+        $phoneNumber = '555-555-5555';
 
         $msg = array(
             'currency' => 'USD',
@@ -19,21 +19,18 @@
             'gateway_txn_id' => mt_rand(),
             'gross' => '1.23',
             'payment_method' => 'cc',
-
-            'phone' => $phone,
+            'phone' => $phoneNumber,
         );
 
         $contribution = wmf_civicrm_contribution_message_import( $msg );
 
-        $api = civicrm_api_classapi();
-        $api->Phone->Get( array(
-            'contact_id' => $contribution['contact_id'],
-        ) );
+        $phones = $this->callAPISuccess('Phone', 'get', array('contact_id' => 
$contribution['contact_id'], 'sequential' => 1));
+        $phone = $phones['values'][0];
 
-        $this->assertEquals( $phone, $api->values[0]->phone );
-        $this->assertEquals( 1, $api->values[0]->is_primary );
-        $this->assertEquals( wmf_civicrm_get_default_location_type_id(), 
$api->values[0]->location_type_id );
-        $this->assertEquals( CRM_Core_OptionGroup::getValue('phone_type', 
'phone'), $api->values[0]->phone_type_id );
+        $this->assertEquals($phoneNumber, $phone['phone']);
+        $this->assertEquals(1, $phone['is_primary']);
+        $this->assertEquals(wmf_civicrm_get_default_location_type_id(), 
$phone['location_type_id']);
+        $this->assertEquals(CRM_Core_OptionGroup::getValue('phone_type', 
'phone'), $phone['phone_type_id']);
     }
 
   /**
diff --git a/sites/all/modules/wmf_civicrm/tests/phpunit/RelationshipTest.php 
b/sites/all/modules/wmf_civicrm/tests/phpunit/RelationshipTest.php
index 6ef3257..ba4ccbc 100644
--- a/sites/all/modules/wmf_civicrm/tests/phpunit/RelationshipTest.php
+++ b/sites/all/modules/wmf_civicrm/tests/phpunit/RelationshipTest.php
@@ -31,18 +31,15 @@
 
         $contribution = wmf_civicrm_contribution_message_import( $msg );
 
-        $api = civicrm_api_classapi();
-
-        $api->RelationshipType->Get( array(
+        $relationshipType = $this->callAPISuccessGetSingle('RelationshipType', 
array(
             'name_a_b' => 'Spouse of',
-        ) );
-        $relationship_type_id = $api->values[0]->id;
+        ));
 
-        $api->Relationship->Get( array(
+        $relationship = $this->callAPISuccessGetSingle('Relationship', array(
             'contact_id_a' => $contribution['contact_id'],
-        ) );
+        ));
 
-        $this->assertEquals( $relationship_type_id, 
$api->values[0]->relationship_type_id );
+        $this->assertEquals($relationshipType['id'], 
$relationship['relationship_type_id']);
     }
 
     /**
diff --git a/sites/all/modules/wmf_civicrm/tests/phpunit/SoftCreditTest.php 
b/sites/all/modules/wmf_civicrm/tests/phpunit/SoftCreditTest.php
index 4a74f94..e8854fe 100644
--- a/sites/all/modules/wmf_civicrm/tests/phpunit/SoftCreditTest.php
+++ b/sites/all/modules/wmf_civicrm/tests/phpunit/SoftCreditTest.php
@@ -30,17 +30,14 @@
 
         $contribution = wmf_civicrm_contribution_message_import( $msg );
 
-        $api = civicrm_api_classapi();
-        $api->Contribution->Get( array(
-            'id' => $contribution['id'],
-            'return' => array(
-                'soft_credit_to' => 1,
-            ),
+        $retrievedContribution = 
$this->callAPISuccessGetSingle('Contribution', array(
+          'id' => $contribution['id'],
+          'return' => array(
+            'soft_credit_to' => 1,
+          ),
+        ));
 
-            'version' => 3,
-        ) );
-
-        $this->assertEquals( $fixtures->org_contact_id, 
$api->values[0]->soft_credit_to );
+        $this->assertEquals( $fixtures->org_contact_id, 
$retrievedContribution['soft_credit_to']);
     }
 
     /**
diff --git 
a/sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php 
b/sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php
index 2d61a49..7f8ccaa 100644
--- 
a/sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php
+++ 
b/sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php
@@ -11,6 +11,8 @@
         }
 
         global $user, $_exchange_rate_cache;
+        $GLOBALS['_PEAR_default_error_mode'] = NULL;
+        $GLOBALS['_PEAR_default_error_options'] = NULL;
         $_exchange_rate_cache = array();
 
         $user = new stdClass();
diff --git a/sites/all/modules/wmf_common/tests/phpunit/WmfTransactionTest.php 
b/sites/all/modules/wmf_common/tests/phpunit/WmfTransactionTest.php
index 5ba6ec5..b01483c 100644
--- a/sites/all/modules/wmf_common/tests/phpunit/WmfTransactionTest.php
+++ b/sites/all/modules/wmf_common/tests/phpunit/WmfTransactionTest.php
@@ -135,27 +135,23 @@
      */
     function testGetContributionMany() {
         $gateway_txn_id = mt_rand();
-        $api = civicrm_api_classapi();
-        $api->Contact->create( array(
+        $contact = $this->callAPISuccess('Contact', 'create', array(
             'contact_type' => 'Individual',
             'display_name' => 'test',
-            'version' => 3,
-        ) );
+        ));
         $params = array(
-            'contact_id' => $api->values[0]->id,
+            'contact_id' => $contact['id'],
             'contribution_type' => 'Cash',
             'total_amount' => 1,
             'version' => 3,
         );
-        $ret = $api->Contribution->create( $params );
-        $this->assertTrue( $ret );
-        wmf_civicrm_set_custom_field_values( $api->values[0]->id, array(
+        $contribution = $this->callAPISuccess('Contribution', 'create', 
$params);
+        wmf_civicrm_set_custom_field_values($contribution['id'], array(
             'gateway' => 'TEST_GATEWAY',
             'gateway_txn_id' => $gateway_txn_id,
         ) );
-        $ret = $api->Contribution->create( $params );
-        $this->assertTrue( $ret );
-        wmf_civicrm_set_custom_field_values( $api->values[0]->id, array(
+        $contribution = $this->callAPISuccess('Contribution', 'create', 
$params);
+        wmf_civicrm_set_custom_field_values($contribution['id'], array(
             'gateway' => 'TEST_GATEWAY',
             'gateway_txn_id' => $gateway_txn_id,
         ) );
diff --git a/sites/all/modules/wmf_communication/tests/Job.test 
b/sites/all/modules/wmf_communication/tests/Job.test
index c211dc2..685a102 100644
--- a/sites/all/modules/wmf_communication/tests/Job.test
+++ b/sites/all/modules/wmf_communication/tests/Job.test
@@ -26,21 +26,17 @@
 
         Mailer::$defaultSystem = 'drupal';
 
-        $api = civicrm_api_classapi();
-        $success = $api->Contact->create( array(
+        $contact = civicrm_api3('Contact', 'create', array(
             'contact_type' => 'Individual',
             'email' => '[email protected]',
             'first_name' => 'Foo',
             'last_name' => 'Beer',
             'preferred_language' => 'it',
-            'version' => 3,
         ) );
-        if ( !$success ) {
-            $this->fail( $api->errorMsg() );
+        if ($contact['is_error'] ) {
+            $this->fail($contact['error_message']);
         }
-        $result = $api->values();
-        $contact = array_pop( $result );
-        $this->contactId = $contact->id;
+        $this->contactId = $contact['id'];
 
         $this->job = Job::create( 'TestThankyouTemplate' );
 

-- 
To view, visit https://gerrit.wikimedia.org/r/350117
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9530ad61020cde1b5a2e3bbe12d48c3ee968ff38
Gerrit-PatchSet: 9
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Eileen <[email protected]>
Gerrit-Reviewer: Eileen <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to