def assert_status(invoice_status, expected_status): invoice.status = invoice_status json_data = invoice_adapter(invoice, self.dummy_request) self.assertEqual(json_data['status'], expected_status)
def test_invoice(self): invoice = self.customer_invoice json_data = invoice_adapter(invoice, self.dummy_request) expected = dict( guid=invoice.guid, invoice_type='customer', transaction_type='debit', status='staged', created_at=invoice.created_at.isoformat(), updated_at=invoice.updated_at.isoformat(), customer_guid=invoice.customer_guid, amount=invoice.amount, effective_amount=invoice.effective_amount, total_adjustment_amount=invoice.total_adjustment_amount, title=invoice.title, external_id=invoice.external_id, funding_instrument_uri=None, appears_on_statement_as='hello baby', items=[ dict(type='debit', name='foo', amount=123, quantity=None, volume=5678, unit=None), dict(type=None, name='bar', amount=456, quantity=10, volume=7788, unit='hours'), ], adjustments=[ dict(amount=20, reason='A Lannister always pays his debts!'), dict(amount=3, reason=None), ], ) self.assertEqual(json_data, expected) def assert_status(invoice_status, expected_status): invoice.status = invoice_status json_data = invoice_adapter(invoice, self.dummy_request) self.assertEqual(json_data['status'], expected_status) assert_status(self.invoice_model.statuses.STAGED, 'staged') assert_status(self.invoice_model.statuses.PROCESSING, 'processing') assert_status(self.invoice_model.statuses.SETTLED, 'settled') assert_status(self.invoice_model.statuses.CANCELED, 'canceled') assert_status(self.invoice_model.statuses.FAILED, 'failed') invoice = self.subscription_invoice json_data = invoice_adapter(invoice, self.dummy_request) expected = dict( guid=invoice.guid, invoice_type='subscription', transaction_type='debit', status='staged', created_at=invoice.created_at.isoformat(), updated_at=invoice.updated_at.isoformat(), scheduled_at=invoice.scheduled_at.isoformat(), subscription_guid=invoice.subscription_guid, amount=invoice.amount, effective_amount=invoice.effective_amount, total_adjustment_amount=invoice.total_adjustment_amount, title=invoice.title, funding_instrument_uri=None, appears_on_statement_as='hello baby', items=[ dict(type='debit', name='foo', amount=123, quantity=None, volume=5678, unit=None), dict(type=None, name='bar', amount=456, quantity=10, volume=7788, unit='hours'), ], adjustments=[ dict(amount=20, reason='A Lannister always pays his debts!'), dict(amount=3, reason=None), ], ) self.assertEqual(json_data, expected)