def test_get_invoice_by_id(self): from penelophant.helpers.invoice import get_invoice_by_id, get_invoice_by_id_or_abort self.assertIsNone(get_invoice_by_id(999)) self.assertEqual(get_invoice_by_id(self.invoice.id), self.invoice) with self.assertRaises(NotFound): get_invoice_by_id_or_abort(999) self.assertEqual(get_invoice_by_id_or_abort(self.invoice.id), self.invoice)
def put(self, invoice_id): """ User pays an invoice """ parser = reqparse.RequestParser() parser.add_argument('ccId', type=str, required=True, location='args') args = parser.parse_args() invoice = get_invoice_by_id_or_abort(invoice_id) if invoice.paid: raise InvoiceAlreadyPaid card = balanced.Card.fetch('/cards/%s' % args.ccId) debit = card.debit( appears_on_statement_as=app.config['STATEMENT_MSG'], amount=int(invoice.amount*100), description="Invoice for invoice #%s" % (invoice.id), meta={ 'invoice_id': invoice.id, 'bid_id': invoice.bid.id, 'auction_id': invoice.bid.auction.id, 'payer': invoice.payer.id, 'payee': invoice.payee.id } ) invoice.provider = "balanced" invoice.provider_details = debit.id invoice.paid = True crud.save() return marshal(invoice, invoice_fields), 200
def get(self, invoice_id): """ View a specific invoice """ invoice = get_invoice_by_id_or_abort(invoice_id) return marshal(invoice, invoice_fields), 200