Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.3.0
-
Fix Version/s: 4.3.0
-
Component/s: Core CiviCRM
-
Labels:None
Description
As part of CRM-10885, the internal names for some dedupe rules were changed:
- IndividualComplete => IndividualGeneral
- IndividualFuzzy => IndividualSupervised
- IndividualStrict => IndividualUnsupervised
Each rule corresponds to a PHP class (CRM_Dedupe_BAO_QueryBuilder_{$name}), and the classes were renamed. Each rule should also be registered in the DB (civicrm_dedupe_rule_group); renaming of the DB records appears incomplete:
1. A quick grep of the source tree shows IndividualComplete (old) still appears in the sql files and IndividualGeneral (new) does not. However, 'IndividualSupervised' (new) and 'IndividualUnsupervised' (new) do appear.
2. None of the names appear in 4.3 upgrade scripts. This means that any existing sites will be unable to use these query-builders.
I believe this is causing "CRM_Contact_BAO_DupeContactTest::testDupesByParams" to fail. The deduper tries to use the specialized class for "IndividualComplete" (old); when it finds the class missing, it falls back to generic deduping. (The fallback is described in CRM_Dedupe_BAO_RuleGroup::tableQuery.) The generic deduping behaves differently than expected, so the test fails.