Ejemplo n.º 1
0
    def test_get_ledger_values_for_case_as_of_same_date(self):
        case_id = uuid.uuid4().hex
        form_xml = get_simple_form_xml(uuid.uuid4().hex, case_id)
        submit_form_locally(form_xml, domain=self.domain)[1]

        # submit ledger data
        balances = ((self.product_a._id, 100), )
        ledger_blocks = [
            get_single_balance_block(case_id, prod_id, balance)
            for prod_id, balance in balances
        ]
        submit_case_blocks(ledger_blocks, self.domain)

        # submit two transfers at the same time
        transfer_date = json_format_datetime(datetime.utcnow())
        transfers = [
            (self.product_a._id, 1, transfer_date),
            (self.product_a._id, 2, transfer_date),
        ]
        for prod_id, transfer, date in transfers:
            submit_case_blocks(
                get_single_transfer_block(case_id, None, prod_id, transfer,
                                          date), self.domain)

        # check results
        results = get_ledger_values_for_case_as_of(domain=self.domain,
                                                   case_id=case_id,
                                                   section_id='stock',
                                                   as_of=datetime.utcnow())
        self.assertEqual(1, len(results))
        self.assertEqual(97, results[self.product_a._id])
Ejemplo n.º 2
0
    def test_get_ledger_values_for_case_as_of_same_date(self):
        case_id = uuid.uuid4().hex
        form_xml = get_simple_form_xml(uuid.uuid4().hex, case_id)
        submit_form_locally(form_xml, domain=self.domain)[1]

        # submit ledger data
        balances = (
            (self.product_a._id, 100),
        )
        ledger_blocks = [
            get_single_balance_block(case_id, prod_id, balance)
            for prod_id, balance in balances
        ]
        submit_case_blocks(ledger_blocks, self.domain)

        # submit two transfers at the same time
        transfer_date = json_format_datetime(datetime.utcnow())
        transfers = [
            (self.product_a._id, 1, transfer_date),
            (self.product_a._id, 2, transfer_date),
        ]
        for prod_id, transfer, date in transfers:
            submit_case_blocks(get_single_transfer_block(case_id, None, prod_id, transfer, date), self.domain)

        # check results
        results = get_ledger_values_for_case_as_of(
            domain=self.domain, case_id=case_id, section_id='stock', as_of=datetime.utcnow())
        self.assertEqual(1, len(results))
        self.assertEqual(97, results[self.product_a._id])
Ejemplo n.º 3
0
 def test_blank_case_id_in_transfer(self):
     instance_id = submit_case_blocks(
         case_blocks=get_single_transfer_block(src_id="", dest_id="", product_id=self.products[0]._id, quantity=100),
         domain=self.domain.name,
     )
     instance = XFormInstance.get(instance_id)
     self.assertEqual("XFormError", instance.doc_type)
     self.assertTrue("IllegalCaseId" in instance.problem)
Ejemplo n.º 4
0
def _receipt_report(domain, case_id, product_id, amount, days_ago):
    from corehq.apps.commtrack.tests.util import get_single_transfer_block
    from dimagi.utils.parsing import json_format_date
    from corehq.apps.hqcase.utils import submit_case_blocks
    date_string = json_format_date(ago(days_ago))
    stock_block = get_single_transfer_block(
        src_id=None, dest_id=case_id, product_id=product_id, quantity=amount, date_string=date_string
    )
    submit_case_blocks(stock_block, domain=domain)
Ejemplo n.º 5
0
def _receipt_report(domain, case_id, product_id, amount, days_ago):
    from corehq.apps.commtrack.tests.util import get_single_transfer_block
    from dimagi.utils.parsing import json_format_date
    from corehq.apps.hqcase.utils import submit_case_blocks
    date_string = json_format_date(ago(days_ago))
    stock_block = get_single_transfer_block(
        src_id=None, dest_id=case_id, product_id=product_id, quantity=amount, date_string=date_string
    )
    submit_case_blocks(stock_block, domain=domain)
Ejemplo n.º 6
0
 def test_blank_case_id_in_transfer(self):
     form = submit_case_blocks(
         case_blocks=get_single_transfer_block(
             src_id='', dest_id='', product_id=self.products[0]._id, quantity=100,
         ),
         domain=self.domain.name,
     )
     instance = FormAccessors(self.domain.name).get_form(form.form_id)
     self.assertTrue(instance.is_error)
     self.assertTrue('IllegalCaseId' in instance.problem)
Ejemplo n.º 7
0
 def test_blank_case_id_in_transfer(self):
     form = submit_case_blocks(
         case_blocks=util.get_single_transfer_block(
             src_id='', dest_id='', product_id=self.products[0]._id, quantity=100,
         ),
         domain=self.domain.name,
     )[0]
     instance = FormAccessors(self.domain.name).get_form(form.form_id)
     self.assertTrue(instance.is_error)
     self.assertTrue('IllegalCaseId' in instance.problem)
Ejemplo n.º 8
0
 def test_blank_case_id_in_transfer(self):
     form = submit_case_blocks(
         case_blocks=util.get_single_transfer_block(
             src_id='',
             dest_id='',
             product_id=self.products[0]._id,
             quantity=100,
         ),
         domain=self.domain.name,
     )[0]
     self.addCleanup(self.delete_ledger_transactions, form.form_id)
     instance = XFormInstance.objects.get_form(form.form_id,
                                               self.domain.name)
     self.assertTrue(instance.is_error)
     self.assertTrue('IllegalCaseId' in instance.problem)
Ejemplo n.º 9
0
 def _transfer_out(self, amount):
     from corehq.apps.commtrack.tests.util import get_single_transfer_block
     self._submit_ledgers([
         get_single_transfer_block(self.case.case_id, None, self.product_a._id, amount)
     ])