示例#1
0
 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)
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
    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()
示例#9
0
    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()