[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update CiviFixtures to use civicrm_api3.
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->callAPISuc
[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update CiviFixtures to use civicrm_api3.
Eileen has uploaded a new change for review. ( 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. 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/wmf_civicrm/tests/includes/CiviFixtures.php M sites/all/modules/wmf_common/tests/includes/BaseWmfDrupalPhpUnitTestCase.php 2 files changed, 28 insertions(+), 44 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm refs/changes/17/350117/1 diff --git a/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php b/sites/all/modules/wmf_civicrm/tests/includes/CiviFixtures.php index e785a8e..b5eceae 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,31 @@ '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']; + +$group = civicrm_api3('OptionGroup', 'get', array('title' => $out->contact_group_name)); // 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; + +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('OptionGroup', 'create', array('title' => $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' => $th