def test_form_extras_override_defaults(self): domain = uuid.uuid4().hex LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace="domain") token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain, form_extras={"last_sync_token": token_id}) [case] = factory.create_or_update_case(CaseStructure(), form_extras={"last_sync_token": "differenttoken"}) form = FormAccessors(domain).get_form(case.xform_ids[0]) self.assertEqual("differenttoken", form.last_sync_token)
def test_form_extras_override_defaults(self): domain = uuid.uuid4().hex LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain, form_extras={'last_sync_token': token_id}) [case] = factory.create_or_update_case(CaseStructure(), form_extras={'last_sync_token': 'differenttoken'}) form = XFormInstance.get(case.xform_ids[0]) self.assertEqual('differenttoken', form.last_sync_token)
def test_form_extras(self): domain = uuid.uuid4().hex LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain) [case] = factory.create_or_update_case(CaseStructure(), form_extras={'last_sync_token': token_id}) form = FormProcessorInterface(domain).xform_model.get(case.xform_ids[0]) self.assertEqual(token_id, form.last_sync_token)
def test_form_extras(self): domain = uuid.uuid4().hex LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain) [case] = factory.create_or_update_case( CaseStructure(), form_extras={'last_sync_token': token_id}) form = FormAccessors(domain).get_form(case.xform_ids[0]) self.assertEqual(token_id, form.last_sync_token)
def test_form_extras_default(self): domain = uuid.uuid4().hex # have to enable loose sync token validation for the domain or create actual SyncLog documents. # this is the easier path. LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain, form_extras={'last_sync_token': token_id}) case = factory.create_case() form = XFormInstance.get(case.xform_ids[0]) self.assertEqual(token_id, form.last_sync_token)
def test_form_extras_override_defaults(self): domain = uuid.uuid4().hex LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain, form_extras={'last_sync_token': token_id}) [case] = factory.create_or_update_case( CaseStructure(), form_extras={'last_sync_token': 'differenttoken'}) form = XFormInstance.get(case.xform_ids[0]) self.assertEqual('differenttoken', form.last_sync_token)
def test_form_extras_default(self): domain = uuid.uuid4().hex # have to enable loose sync token validation for the domain or create actual SyncLog documents. # this is the easier path. LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') token_id = uuid.uuid4().hex factory = CaseFactory(domain=domain, form_extras={'last_sync_token': token_id}) case = factory.create_case() form = FormAccessors(domain).get_form(case.xform_ids[0]) self.assertEqual(token_id, form.last_sync_token)
def test_submission_with_bad_log_toggle_enabled(self): domain = 'submission-domain-with-toggle' def _test(): post_case_blocks( [CaseBlock(create=True, case_id='bad-log-toggle-enabled', version=V2).as_xml()], form_extras={"last_sync_token": 'not-a-valid-synclog-id'}, domain=domain, ) LOOSE_SYNC_TOKEN_VALIDATION.set(domain, False, namespace='domain') with self.assertRaises(ResourceNotFound): _test() LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') # this is just asserting that an exception is not raised after the toggle is set _test()
def test_restore_with_bad_log_toggle_enabled(self): domain = 'restore-domain-with-toggle' def _test(): RestoreConfig( self.user, version=V2, restore_id='not-a-valid-synclog-id', domain=Domain(name=domain), ).get_payload() LOOSE_SYNC_TOKEN_VALIDATION.set(domain, False, namespace='domain') with self.assertRaises(ResourceNotFound): _test() LOOSE_SYNC_TOKEN_VALIDATION.set(domain, True, namespace='domain') # when the toggle is set the exception should be an HttpException instead with self.assertRaises(HttpException): _test()