def post(self): """ Creates a supplier This endpoint will create a supplier based the data in the body that is posted """ app.logger.info('Request to Create a supplier') check_content_type('application/json') data = request.get_json() if not isinstance(data, dict): data = json.loads(data) try: data['supplierName'] except KeyError as error: raise DataValidationError('Invalid supplier: missing ' + error.args[0]) except TypeError as error: raise DataValidationError( 'Invalid supplier: body of request contained' 'bad or no data') supplier = Supplier(**data) supplier.save() app.logger.debug('Payload = %s', api.payload) app.logger.info('supplier with new id [%s] saved!', supplier.id) location_url = api.url_for(SupplierResource, supplier_id=supplier.id, _external=True) return json.loads(supplier.to_json()), status.HTTP_201_CREATED, { 'Location': location_url }
def test_find_supplier(self): """ Find a Supplier by id """ Supplier("supplier1", 2, True, [1, 2, 3], 8.5).save() # saved_supplier = Supplier("kitty", "cat").save() saved_supplier = Supplier("supplier1", 2, True, [1, 2, 3], 8.5) saved_supplier.save() supplier = Supplier.find(saved_supplier.id) self.assertIsNot(supplier, None) self.assertEqual(supplier.id, saved_supplier.id) self.assertEqual(supplier.name, "supplier1")
def test_add_a_supplier(self): """ Test create a supplier and add it to the database """ suppliers = Supplier.all() self.assertEqual(len(suppliers), 0) supplier = Supplier(supplierName="Walmart", address="NYC", averageRating=5, productIdList=['1', '2', '3']) self.assertTrue(supplier != None) self.assertEqual(supplier.id, None) supplier.save() # Asert that it was assigned an id and shows up in the database # self.assertEqual(supplier.id, 1) suppliers = Supplier.all() self.assertEqual(len(suppliers), 1) self.assertNotEqual(supplier.id, None)
def test_add_a_supplier(self): """ Create a supplier and add it to the database """ suppliers = Supplier.all() self.assertEqual(suppliers, []) supplier = Supplier("supplier1", 2, True, [1, 2, 3], 8.5) self.assertNotEqual(supplier, None) self.assertEqual(supplier.id, None) supplier.save() # Asert that it was assigned an id and shows up in the database self.assertNotEqual(supplier.id, None) suppliers = Supplier.all() self.assertEqual(len(suppliers), 1) self.assertEqual(suppliers[0].name, "supplier1") self.assertEqual(suppliers[0].like_count, 2) self.assertEqual(suppliers[0].is_active, True) self.assertEqual(suppliers[0].products, [1, 2, 3]) self.assertEqual(suppliers[0].rating, 8.5)
def test_update_a_supplier(self): """ Test update a supplier """ supplier = Supplier(supplierName="Walmart", address="NYC", averageRating=5, productIdList=['1', '2', '3']) supplier.save() self.assertNotEqual(supplier.id, None) old_id = supplier.id # Change it an save it supplier.supplierName = "Costco" supplier.save() self.assertEqual(supplier.id, old_id) # Fetch it back and make sure the id hasn't changed # but the data did change suppliers = Supplier.all() self.assertEqual(len(suppliers), 1) self.assertEqual(suppliers[0].supplierName, "Costco")
def post(self): """ Creates a Supplier This endpoint will create a Supplier based the data in the body that is posted """ app.logger.info('Request to Create a Supplier...') # Check for form submission data if request.headers.get( 'Content-Type') == 'application/x-www-form-urlencoded': app.logger.info('Getting data from form submit') data = { "name": request.form['name'], "like_count": request.form['like_count'], "is_active": request.form['is_active'], "products": request.form['products'], "rating": request.form['rating'] } else: check_content_type('application/json') app.logger.info('Getting json data from API call') data = request.get_json() # Data type transfer data = data_type_transfer(data) app.logger.info(data) supplier = Supplier() supplier.deserialize(data) supplier.save() app.logger.info('Supplier with new id [%s] saved!', supplier.id) location_url = api.url_for(SupplierResource, supplier_id=supplier.id, _external=True) return supplier.serialize(), status.HTTP_201_CREATED, { 'Location': location_url }
def data_load(payload): """ Loads a Supplier into the database """ supplier = Supplier(payload['name'], payload['category'], payload['preferred']) supplier.save()