def test_deleted_indices_removed(self): factory = CaseFactory( self.domain, case_defaults={ 'user_id': self.commcare_user._id, 'owner_id': self.commcare_user._id, 'case_type': 'a-case', 'create': True, }, ) # create a parent/child set of cases parent_id, child_id = [uuid.uuid4().hex for i in range(2)] child, parent = factory.create_or_update_case(CaseStructure( case_id=child_id, indices=[ CaseIndex(CaseStructure(case_id=parent_id)) ] )) # confirm the child has an index, and 1 form self.assertEqual(1, len(child.indices)) self.assertEqual(parent_id, child.indices[0].referenced_id) self.assertEqual(1, len(child.xform_ids)) # simulate parent deletion parent.soft_delete() # call the remove index task remove_indices_from_deleted_cases(self.domain, [parent_id]) # check that the index is removed via a new form child = CaseAccessors(self.domain).get_case(child_id) self.assertEqual(0, len(child.indices)) self.assertEqual(2, len(child.xform_ids))
def test_deleted_indices_removed(self): factory = CaseFactory( self.domain, case_defaults={ 'user_id': self.commcare_user._id, 'owner_id': self.commcare_user._id, 'case_type': 'a-case', 'create': True, }, ) # create a parent/child set of cases parent_id, child_id = [uuid.uuid4().hex for i in range(2)] child, parent = factory.create_or_update_case( CaseStructure(case_id=child_id, relationships=[ CaseRelationship( CaseStructure(case_id=parent_id)) ])) # confirm the child has an index, and 1 form self.assertEqual(1, len(child.indices)) self.assertEqual(parent_id, child.indices[0].referenced_id) self.assertEqual(1, len(child.xform_ids)) # simulate parent deletion parent.doc_type = 'CommCareCase-Deleted' parent.save() # call the remove index task remove_indices_from_deleted_cases(self.domain, [parent_id]) # check that the index is removed via a new form child = CommCareCase.get(child_id) self.assertEqual(0, len(child.indices)) self.assertEqual(2, len(child.xform_ids))