当前位置: 首页>>代码示例>>Python>>正文


Python dbaccessors.CaseAccessorSQL类代码示例

本文整理汇总了Python中corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL的典型用法代码示例。如果您正苦于以下问题:Python CaseAccessorSQL类的具体用法?Python CaseAccessorSQL怎么用?Python CaseAccessorSQL使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CaseAccessorSQL类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_reconcile_transactions_within_fudge_factor

    def test_reconcile_transactions_within_fudge_factor(self, soft_assert_mock):
        """ tests a transanction with an early client date and late server date """
        with freeze_time("2018-10-10"):
            case = self._create_case()

        with freeze_time("2018-10-11 06:00"):
            new_old_xform = self._create_form()
        with freeze_time("2018-10-10 18:00"):
            new_old_trans = self._create_case_transaction(case, new_old_xform)
        with freeze_time("2018-10-11 06:00"):
            case.track_create(new_old_trans)
            FormProcessorSQL.save_processed_models(ProcessedForms(new_old_xform, []), [case])

        with freeze_time("2018-10-11"):
            new_old_xform = self._create_form()
            new_old_trans = self._create_case_transaction(case, new_old_xform)
            case.track_create(new_old_trans)
            FormProcessorSQL.save_processed_models(ProcessedForms(new_old_xform, []), [case])

        case = CaseAccessorSQL.get_case(case.case_id)
        update_strategy = SqlCaseUpdateStrategy(case)
        self.assertTrue(update_strategy.reconcile_transactions_if_necessary())
        self._check_for_reconciliation_error_soft_assert(soft_assert_mock)

        CaseAccessorSQL.save_case(case)

        case = CaseAccessorSQL.get_case(case.case_id)
        update_strategy = SqlCaseUpdateStrategy(case)
        self.assertFalse(update_strategy.reconcile_transactions_if_necessary())
        self._check_for_reconciliation_error_soft_assert(soft_assert_mock)
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:30,代码来源:test_sql_update_strategy.py

示例2: test_get_attachments

    def test_get_attachments(self):
        case = _create_case()

        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='pic.jpg',
            content_type='image/jpeg',
            blob_id='125',
            identifier='pic1',
            md5='123',
        ))
        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='doc',
            content_type='text/xml',
            blob_id='126',
            identifier='doc1',
            md5='123',
        ))
        CaseAccessorSQL.save_case(case)

        with self.assertNumQueries(1, using=db_for_read_write(CaseAttachmentSQL)):
            attachments = CaseAccessorSQL.get_attachments(case.case_id)

        self.assertEqual(2, len(attachments))
        sorted_attachments = sorted(attachments, key=lambda x: x.name)
        for att in attachments:
            self.assertEqual(case.case_id, att.case_id)
        self.assertEqual('doc', sorted_attachments[0].name)
        self.assertEqual('pic.jpg', sorted_attachments[1].name)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:32,代码来源:test_case_dbaccessor.py

示例3: test_get_attachment_by_name

    def test_get_attachment_by_name(self):
        case = _create_case()

        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='pic.jpg',
            content_type='image/jpeg',
            blob_id='123',
            identifier='pic1',
            md5='123'
        ))
        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='my_doc',
            content_type='text/xml',
            blob_id='124',
            identifier='doc1',
            md5='123'
        ))
        CaseAccessorSQL.save_case(case)

        with self.assertRaises(AttachmentNotFound):
            CaseAccessorSQL.get_attachment_by_identifier(case.case_id, 'missing')

        with self.assertNumQueries(1, using=db_for_read_write(CaseAttachmentSQL)):
            attachment_meta = CaseAccessorSQL.get_attachment_by_identifier(case.case_id, 'pic1')

        self.assertEqual(case.case_id, attachment_meta.case_id)
        self.assertEqual('pic.jpg', attachment_meta.name)
        self.assertEqual('image/jpeg', attachment_meta.content_type)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:32,代码来源:test_case_dbaccessor.py

示例4: tearDownClass

 def tearDownClass(cls):
     CaseAccessorSQL.hard_delete_cases(
         cls.domain,
         cls.created_case_ids
     )
     cls.domain_obj.delete()
     super(BaseICDSTest, cls).tearDownClass()
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:7,代码来源:base.py

示例5: test_edit_form_that_removes_ledgers

    def test_edit_form_that_removes_ledgers(self):
        from corehq.apps.commtrack.tests.util import get_single_balance_block
        form_id = uuid.uuid4().hex
        submit_case_blocks([
            get_single_balance_block(self.case.case_id, self.product_a._id, 100)],
            DOMAIN,
            form_id=form_id
        )

        self._assert_ledger_state(100)

        transactions = CaseAccessorSQL.get_transactions(self.case.case_id)
        self.assertEqual(2, len(transactions))
        self.assertTrue(transactions[0].is_form_transaction)
        self.assertTrue(transactions[1].is_form_transaction)
        self.assertTrue(transactions[1].is_ledger_transaction)

        submit_case_blocks([
            CaseBlock(case_id=self.case.case_id).as_string().decode('utf-8')],
            DOMAIN,
            form_id=form_id
        )

        self._assert_ledger_state(0)

        transactions = CaseAccessorSQL.get_transactions(self.case.case_id)
        self.assertEqual(3, len(transactions))
        self.assertTrue(transactions[0].is_form_transaction)
        # ordering not guaranteed since they have the same date
        self.assertTrue(transactions[1].is_form_transaction)
        self.assertFalse(transactions[1].is_ledger_transaction)  # no longer a ledger transaction
        self.assertTrue(transactions[2].is_case_rebuild)

        self._assert_transactions([])
开发者ID:dimagi,项目名称:commcare-hq,代码行数:34,代码来源:test_ledgers.py

示例6: test_get_attachments

    def test_get_attachments(self):
        case = _create_case()

        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='pic.jpg',
            content_type='image/jpeg'
        ))
        case.track_create(CaseAttachmentSQL(
            case=case,
            attachment_id=uuid.uuid4().hex,
            name='doc',
            content_type='text/xml'
        ))
        CaseAccessorSQL.save_case(case)

        with self.assertRaises(AttachmentNotFound):
            CaseAccessorSQL.get_attachment_by_name(case.case_id, 'missing')

        with self.assertNumQueries(1, using=db_for_read_write(CaseAttachmentSQL)):
            attachments = CaseAccessorSQL.get_attachments(case.case_id)

        self.assertEqual(2, len(attachments))
        sorted_attachments = sorted(attachments, key=lambda x: x.name)
        for att in attachments:
            self.assertEqual(case.case_id, att.case_id)
        self.assertEqual('doc', sorted_attachments[0].name)
        self.assertEqual('pic.jpg', sorted_attachments[1].name)
开发者ID:bazuzi,项目名称:commcare-hq,代码行数:29,代码来源:test_case_dbaccessor.py

示例7: _create_case_transactions

def _create_case_transactions(case):
    case.track_create(CaseTransaction(
        case=case,
        form_id=uuid.uuid4().hex,
        server_date=datetime.utcnow(),
        type=CaseTransaction.TYPE_FORM,
        revoked=False
    ))
    # exclude revoked
    case.track_create(CaseTransaction(
        case=case,
        form_id=uuid.uuid4().hex,
        server_date=datetime.utcnow(),
        type=CaseTransaction.TYPE_FORM,
        revoked=True
    ))
    # exclude based on type
    case.track_create(CaseTransaction(
        case=case,
        form_id=uuid.uuid4().hex,
        server_date=datetime.utcnow(),
        type=CaseTransaction.TYPE_REBUILD_FORM_ARCHIVED,
        revoked=False
    ))
    form_ids = [t.form_id for t in case.get_tracked_models_to_create(CaseTransaction)]
    CaseAccessorSQL.save_case(case)
    return form_ids
开发者ID:bazuzi,项目名称:commcare-hq,代码行数:27,代码来源:test_case_dbaccessor.py

示例8: hard_rebuild_case

    def hard_rebuild_case(domain, case_id, detail, lock=True):
        if lock:
            # only record metric if locking since otherwise it has been
            # (most likley) recorded elsewhere
            case_load_counter("rebuild_case", domain)()
        case, lock_obj = FormProcessorSQL.get_case_with_lock(case_id, lock=lock)
        found = bool(case)
        if not found:
            case = CommCareCaseSQL(case_id=case_id, domain=domain)
            if lock:
                lock_obj = CommCareCaseSQL.get_obj_lock_by_id(case_id)
                acquire_lock(lock_obj, degrade_gracefully=False)

        try:
            assert case.domain == domain, (case.domain, domain)
            case, rebuild_transaction = FormProcessorSQL._rebuild_case_from_transactions(case, detail)
            if case.is_deleted and not case.is_saved():
                return None

            case.server_modified_on = rebuild_transaction.server_date
            CaseAccessorSQL.save_case(case)
            publish_case_saved(case)
            return case
        finally:
            release_lock(lock_obj, degrade_gracefully=True)
开发者ID:dimagi,项目名称:commcare-hq,代码行数:25,代码来源:processor.py

示例9: test_get_extension_case_ids

    def test_get_extension_case_ids(self):
        # Create case and index
        referenced_id = uuid.uuid4().hex
        case = _create_case()
        extension_index = CommCareCaseIndexSQL(
            case=case,
            identifier="task",
            referenced_type="task",
            referenced_id=referenced_id,
            relationship_id=CommCareCaseIndexSQL.EXTENSION
        )
        case.track_create(extension_index)
        CaseAccessorSQL.save_case(case)

        # Create irrelevant case
        other_case = _create_case()
        child_index = CommCareCaseIndexSQL(
            case=other_case,
            identifier='parent',
            referenced_type='mother',
            referenced_id=referenced_id,
            relationship_id=CommCareCaseIndexSQL.CHILD
        )
        case.track_create(child_index)
        CaseAccessorSQL.save_case(other_case)

        self.assertEqual(
            CaseAccessorSQL.get_extension_case_ids(DOMAIN, [referenced_id]),
            [case.case_id]
        )
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:30,代码来源:test_case_dbaccessor.py

示例10: test_get_case_by_location

    def test_get_case_by_location(self):
        case = _create_case(case_type=SupplyPointCaseMixin.CASE_TYPE)
        location_id = uuid.uuid4().hex
        case.location_id = location_id
        CaseAccessorSQL.save_case(case)

        fetched_case = CaseAccessorSQL.get_case_by_location(DOMAIN, location_id)
        self.assertEqual(case.id, fetched_case.id)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:8,代码来源:test_case_dbaccessor.py

示例11: test_get_closed_case_ids

    def test_get_closed_case_ids(self):
        case1 = _create_case(user_id="user1")
        case2 = _create_case(user_id="user1")
        case3 = _create_case(user_id="user2")
        case2.closed = True
        CaseAccessorSQL.save_case(case2)

        self.assertEqual(CaseAccessorSQL.get_closed_case_ids_for_owner(DOMAIN, "user1"), [case2.case_id])
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:8,代码来源:test_case_dbaccessor.py

示例12: test_case_has_transactions_since_sync

 def test_case_has_transactions_since_sync(self):
     case1 = _create_case()
     _create_case_transactions(case1)
     self.assertTrue(
         CaseAccessorSQL.case_has_transactions_since_sync(case1.case_id, "foo", datetime(1992, 01, 30))
     )
     self.assertFalse(
         CaseAccessorSQL.case_has_transactions_since_sync(case1.case_id, "foo", datetime.utcnow())
     )
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:9,代码来源:test_case_dbaccessor.py

示例13: test_get_deleted_case_ids_by_owner

    def test_get_deleted_case_ids_by_owner(self):
        user_id = uuid.uuid4().hex
        case1 = _create_case(user_id=user_id)
        case2 = _create_case(user_id=user_id)
        case3 = _create_case(user_id=user_id)

        CaseAccessorSQL.soft_delete_cases(DOMAIN, [case1.case_id, case2.case_id])

        case_ids = CaseAccessorSQL.get_deleted_case_ids_by_owner(DOMAIN, user_id)
        self.assertEqual(set(case_ids), {case1.case_id, case2.case_id})
开发者ID:dimagi,项目名称:commcare-hq,代码行数:10,代码来源:test_case_dbaccessor.py

示例14: test_get_transaction_by_form_id

    def test_get_transaction_by_form_id(self):
        form_id = uuid.uuid4().hex
        case = _create_case(form_id=form_id)

        transaction = CaseAccessorSQL.get_transaction_by_form_id(case.case_id, form_id)
        self.assertEqual(form_id, transaction.form_id)
        self.assertEqual(case.case_id, transaction.case_id)

        transaction = CaseAccessorSQL.get_transaction_by_form_id(case.case_id, 'wrong')
        self.assertIsNone(transaction)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:10,代码来源:test_case_dbaccessor.py

示例15: create_case

def create_case(domain, case_type, **kwargs):
    case = CaseFactory(domain).create_case(case_type=case_type, **kwargs)

    try:
        yield case
    finally:
        if should_use_sql_backend(domain):
            CaseAccessorSQL.hard_delete_cases(domain, [case.case_id])
        else:
            case.delete()
开发者ID:dimagi,项目名称:commcare-hq,代码行数:10,代码来源:util.py


注:本文中的corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。