def _test_form_diff_filter(self, couch_form, sql_form, diffs=None, expected=REAL_DIFFS): if diffs is None: diffs = json_diff(couch_form, sql_form, track_list_indices=False) self.assertTrue(diffs) diffs += REAL_DIFFS filtered = filter_form_diffs(couch_form, sql_form, diffs) self.assertEqual(filtered, expected)
def _save_diffs(self, couch_form, sql_form): from corehq.apps.tzmigration.timezonemigration import json_diff couch_form_json = couch_form.to_json() sql_form_json = sql_form.to_json() diffs = json_diff(couch_form_json, sql_form_json, track_list_indices=False) self.diff_db.add_diffs( couch_form.doc_type, couch_form.form_id, filter_form_diffs(couch_form_json, sql_form_json, diffs) )
def _save_diffs(self, couch_form, sql_form): from corehq.apps.tzmigration.timezonemigration import json_diff couch_form_json = couch_form.to_json() sql_form_json = sql_form.to_json() diffs = json_diff(couch_form_json, sql_form_json, track_list_indices=False) self.diff_db.add_diffs( couch_form.doc_type, couch_form.form_id, filter_form_diffs(couch_form_json, sql_form_json, diffs) )
def _migrate_form_and_associated_models(self, couch_form): from corehq.apps.tzmigration.timezonemigration import json_diff sql_form = _migrate_form(self.domain, couch_form) _migrate_form_attachments(sql_form, couch_form) _migrate_form_operations(sql_form, couch_form) diffs = json_diff(couch_form.to_json(), sql_form.to_json(), track_list_indices=False) self.diff_db.add_diffs( couch_form.doc_type, couch_form.form_id, filter_form_diffs(couch_form.doc_type, diffs) ) case_stock_result = None if sql_form.initial_processing_complete: case_stock_result = _get_case_and_ledger_updates(self.domain, sql_form) _save_migrated_models(sql_form, case_stock_result)
def _migrate_unprocessed_form(self, couch_form_json): from corehq.apps.tzmigration.timezonemigration import json_diff self.log_debug('Processing doc: {}({})'.format(couch_form_json['doc_type'], couch_form_json['_id'])) couch_form = _wrap_form(couch_form_json) sql_form = XFormInstanceSQL( form_id=couch_form.form_id, xmlns=couch_form.xmlns, user_id=couch_form.user_id, ) _copy_form_properties(self.domain, sql_form, couch_form) _migrate_form_attachments(sql_form, couch_form) _migrate_form_operations(sql_form, couch_form) if couch_form.doc_type != 'SubmissionErrorLog': diffs = json_diff(couch_form.to_json(), sql_form.to_json(), track_list_indices=False) self.diff_db.add_diffs( couch_form.doc_type, couch_form.form_id, filter_form_diffs(couch_form.doc_type, diffs) ) _save_migrated_models(sql_form)
def _test_form_diff_filter(self, couch_form, sql_form, diffs, expected): filtered = filter_form_diffs(couch_form, sql_form, diffs) self.assertEqual(filtered, expected)
def _test_form_diff_filter(self, couch_form, sql_form, diffs, expected): filtered = filter_form_diffs(couch_form, sql_form, diffs) self.assertEqual(filtered, expected)
def _test_form_diff_filter(self, doc_type, diffs, expected): filtered = filter_form_diffs(doc_type, diffs) self.assertEqual(filtered, expected)