def test_delete_a_payment(self): """ Delete a Payment """ payment = Payment(order_id="1", customer_id="1", available=True, payments_type="credit card") payment.save() self.assertEqual(len(Payment.all()), 1) # delete the pet and make sure it isn't in the database payment.delete() self.assertEqual(len(Payment.all()), 0)
def test_add_a_payment(self): """ Create a payment and add it to the database """ payments = Payment.all() self.assertEqual(payments, []) payment = Payment(order_id="1", customer_id="1", available=True, payments_type="credit card") self.assertTrue(payment is not None) self.assertEqual(payment.id, None) payment.save() # Asert that it was assigned an id and shows up in the database self.assertEqual(payment.id, 1) payments = Payment.all() self.assertEqual(len(payments), 1)
def create_payments(): """ Creates a Payment This endpoint will create a Payment based the data in the body that is posted """ app.logger.info('Request to create a payments') check_content_type('application/json') payment = Payment() payment.deserialize(request.get_json()) payment.save() message = payment.serialize() location_url = url_for('get_payments', payments_id=payment.id, _external=True) return make_response(jsonify(message), status.HTTP_201_CREATED, { 'Location': location_url })
def test_find_a_payment(self): """ Find a payment by ID""" payment = Payment(order_id="1", customer_id="1", available=True, payments_type="credit card") payment.save() #adding extra row in case the find method return something randomly Payment(order_id="2", customer_id="2", available=False, payments_type="paypal").save() self.assertTrue(payment is not None) self.assertIsNot(payment.id, None) new_payment = Payment.find(payment.id) self.assertEqual(new_payment.id, payment.id)
def post(self): """Creates a payment. This endpoint will create a payment based on the data posted in the body. """ app.logger.info('Request to Create a Payment') # pylint: disable=no-member check_content_type('application/json') payment = Payment() app.logger.debug('Payload = %s', api.payload) # pylint: disable=no-member data = api.payload # Still use jsonschema to validate data. jsonschema.validate(data, PAYMENT_SCHEMA) payment.deserialize(data) payment.save() app.logger.info('Payment with new id [%s] saved!', payment.id) # pylint: disable=no-member location_url = api.url_for(PaymentResource, payment_id=payment.id, _external=True) return payment.serialize(), status.HTTP_201_CREATED, { 'Location': location_url }
def test_find_a_payment(self): """ Find a payment by ID """ saved_payment = Payment( order_id="1", customer_id="1", available=True, type="credit card", info=self._test_credit_card_info) saved_payment.save() # adding extra row in case the find method return something randomly Payment( order_id="2", customer_id="2", available=False, type="paypal", info=self._test_paypal_info).save() payment = Payment.find(saved_payment.id) self.assertIsNot(payment, None) self.assertEqual(payment.id, saved_payment.id) self.assertEqual(payment.order_id, saved_payment.order_id) self.assertEqual(payment.customer_id, saved_payment.customer_id) self.assertEqual(payment.available, saved_payment.available) self.assertEqual(payment.type, saved_payment.type) self.assertEqual(payment.info, saved_payment.info)