Beispiel #1
0
    def test_all_case_forms_deleted(self):
        from corehq.apps.callcenter.sync_user_case import sync_usercase
        sync_usercase(self.commcare_user)

        user_case_id = self.commcare_user.get_usercase_id()

        # other user submits form against the case (should get deleted)
        caseblock = CaseBlock.deprecated_init(
            create=False,
            case_id=user_case_id,
        )
        submit_case_blocks(caseblock.as_text(),
                           self.domain,
                           user_id=self.other_user._id)

        case_ids = CaseAccessors(self.domain).get_case_ids_by_owners(
            [self.commcare_user._id])
        self.assertEqual(1, len(case_ids))

        form_ids = FormAccessors(self.domain).get_form_ids_for_user(
            self.commcare_user._id)
        self.assertEqual(0, len(form_ids))

        user_case = self.commcare_user.get_usercase()
        self.assertEqual(2, len(user_case.xform_ids))

        self.commcare_user.retire(deleted_by=None)

        for form_id in user_case.xform_ids:
            self.assertTrue(
                FormAccessors(self.domain).get_form(form_id).is_deleted)

        self.assertTrue(
            CaseAccessors(self.domain).get_case(user_case_id).is_deleted)
Beispiel #2
0
    def test_all_case_forms_deleted(self):
        from corehq.apps.callcenter.sync_user_case import sync_usercase
        sync_usercase(self.commcare_user)

        user_case_id = self.commcare_user.get_usercase_id()

        # other user submits form against the case (should get deleted)
        caseblock = CaseBlock(
            create=False,
            case_id=user_case_id,
        )
        submit_case_blocks(caseblock.as_string().decode('utf-8'), self.domain, user_id=self.other_user._id)

        case_ids = CaseAccessors(self.domain).get_case_ids_by_owners([self.commcare_user._id])
        self.assertEqual(1, len(case_ids))

        form_ids = FormAccessors(self.domain).get_form_ids_for_user(self.commcare_user._id)
        self.assertEqual(0, len(form_ids))

        user_case = self.commcare_user.get_usercase()
        self.assertEqual(2, len(user_case.xform_ids))

        self.commcare_user.retire()

        for form_id in user_case.xform_ids:
            self.assertTrue(FormAccessors(self.domain).get_form(form_id).is_deleted)

        self.assertTrue(CaseAccessors(self.domain).get_case(user_case_id).is_deleted)
Beispiel #3
0
 def test_sync_usercase_custom_user_data_on_update(self):
     """
     Custom user data should be synced when the user is updated
     """
     self.user.user_data = {
         'completed_training': 'no',
     }
     self.user.save()
     self.user.user_data = {
         'completed_training': 'yes',
     }
     sync_usercase(self.user)
     case = CaseAccessors(TEST_DOMAIN).get_case_by_domain_hq_user_id(self.user._id, USERCASE_TYPE)
     self.assertEqual(case.dynamic_case_properties()['completed_training'], 'yes')
     self._check_update_matches(case, {'completed_training': 'yes'})
Beispiel #4
0
 def test_sync_usercase_custom_user_data_on_update(self):
     """
     Custom user data should be synced when the user is updated
     """
     self.user.user_data = {
         'completed_training': 'no',
     }
     self.user.save()
     self.user.user_data = {
         'completed_training': 'yes',
     }
     sync_usercase(self.user)
     case = CaseAccessors(TEST_DOMAIN).get_case_by_domain_hq_user_id(self.user._id, USERCASE_TYPE)
     self.assertEqual(case.dynamic_case_properties()['completed_training'], 'yes')
     self._check_update_matches(case, {'completed_training': 'yes'})
Beispiel #5
0
def sync_user_cases_task(user_id):
    user = CommCareUser.get_by_user_id(user_id)
    sync_call_center_user_case(user)
    sync_usercase(user)
Beispiel #6
0
def sync_user_cases_task(user_id):
    user = CommCareUser.get_by_user_id(user_id)
    sync_call_center_user_case(user)
    sync_usercase(user)
Beispiel #7
0
def create_user_cases(domain_name):
    from corehq.apps.callcenter.sync_user_case import sync_usercase
    for user in CommCareUser.by_domain(domain_name):
        sync_usercase(user)