Ejemplo n.º 1
0
 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)
     )
Ejemplo n.º 3
0
 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)
     )
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 def _test_form_diff_filter(self, doc_type, diffs, expected):
     filtered = filter_form_diffs(doc_type, diffs)
     self.assertEqual(filtered, expected)