def test_update_provider_status(self): token = self.authenticate('*****@*****.**', 'super-secret-password') url = 'api/organizations/2' response = self.put(url, token, {"status": "rejected"}) self.assertEqual(response.status_code, 204) obj = get_organisation(2) self.assertEqual(obj.status_obj.code, "rejected")
def get(self, vid): dbobj = orga_repository.get_organisation(vid) if not dbobj: return { "errors": [{ "code": "UNKNOWN_RESOURCE", "message": "unknown organisation" }] }, 404 return dbobj.json, 200
def post(self): params = request.json errors = product_validator.DeliveryItemCreationRequest().validate( params, many=False) if errors: return { "errors": [{ "code": f"BAD_PARAM_{k.upper()}", "message": "\n".join(v) } for k, v in errors.items()] }, 400 product = product_repository.get_product_reference_by_reference( params.get('reference')) if product is None: return { "errors": [get_error_messages(constant.UNKNOWN_RESOURCE)] }, 404 errors = [] prod_type = product_repository.ProductType if product.type == prod_type.materials: errors.append( get_error_messages(constant.CANNOT_DELIVER_MATERIAL_PRODUCT)) manufactor = orga_repository.get_organisation( params.get("manufactor_vid")) if not manufactor: errors.append( get_error_messages(constant.UNKNOWN_ORGANISATION, params.get("manufactor_vid"))) elif manufactor.role_obj.code != "man": errors.append( get_error_messages(constant.NOT_A_MANUFACTOR, params.get("manufactor_vid"))) if errors: return {"errors": errors}, 400 if params.get("kit") == 1: # check the material availability try: product_repository.check_kit_delivery_creation( product, params.get("count")) except product_repository.ProductException as exc: return {"errors": exc.details}, 400 func = product_repository.create_kit_delivery_stock if params.get("delivery_type") == "kit" \ else product_repository.create_final_delivery_stock func(product, params.get("count"), manufactor) return {}, 204
def test_create_final_delivery_stock(self): obj = product_repo.get_product_reference_by_reference("MEFP2+") manufactor = orga_repo.get_organisation(6) product_repo.create_final_delivery_stock(obj, 40, manufactor) obj1 = [ it for it in product_repo.count_all_stocks_by_reference_and_type().items ] self.assertEqual(obj1, [('MEFP2+', product_repo.ProductType.kit, 50)]) obj2 = [ it for it in product_repo.count_all_delivery_by_reference_and_type().items ] self.assertEqual( obj2, [('MTOILE', "Couturier 2", product_repo.ProductType.kit, product_repo.StatusType.submitted, 120), ('MEFP2+', 'Couturier 1', product_repo.ProductType.final, product_repo.StatusType.submitted, 40)])
def put(self, vid, params): dbobj = orga_repository.get_organisation(vid) if not dbobj: return { "errors": [{ "code": "UNKNOWN_RESOURCE", "message": "unknown organisation" }] }, 404 statusobj = ref_repository.get_reference_from_code_or_libelle( params.get('status')) if not statusobj: return { "errors": [{ "code": "BAD_STATUS", "message": "bad status" }] }, 400 dbobj.status_obj = statusobj dbobj.save() return {}, 204