def test_delivery_cant_accept_favours(self, set_order_price): from src.auth.models.user_table import NormalUserModel from src.auth.models.user_table import DeliveryUserModel from src.auth.services.order_service import OrderService from src.auth.services.order_ofert_service import OrderOfferService from src.auth.auth_exception import NotFoundException set_order_price.return_value = True CANTIDAD_FAVOUR_POINTS = 20 user = NormalUserModel(user_data) user.save() delivery = DeliveryUserModel(delivery_data) delivery.save() order_service = OrderService() order_data["user_id"] = user.user_id order_data["payWithPoints"] = True order_data["favourPoints"] = CANTIDAD_FAVOUR_POINTS order = order_service.create_order(order_data) assert order.state == 'created' order_ofert_service = OrderOfferService() order_ofert = order_ofert_service.create_order_ofert(order_ofert_data) with self.assertRaisesRegex( NotFoundException, "ID invalido: Solo los usuarios comunes pueden aceptar favores" ): order_ofert_service.update_offer_state(delivery.user_id, order.order_id, 'accepted')
def create_delivery_user(self, user_data): from src.auth.models.user_table import DeliveryUserModel try: user_data["password"] = self._encrypt_password( user_data["password"]) except KeyError: pass user = DeliveryUserModel(user_data) user.save() return user
def test_order_wit_discount_subtract_user_favour_pounts(self): from src.auth.models.user_table import NormalUserModel, DeliveryUserModel from src.auth.services.order_service import OrderService from src.auth.services.order_ofert_service import OrderOfferService from src.auth.models.product_table import ProductModel #Agrego dos productos p1 = ProductModel({ "shop_id": 1, "name": "Hamburguesa con queso", "description": "Hamburguesa con queso. Lechuga y tomate opcionales", "price": 120 }) p2 = ProductModel({ "shop_id": 2, "name": "Hamburguesa normal", "description": "Hamburguesa con queso. Lechuga y tomate opcionales", "price": 90 }) p1.save() p2.save() #Creo el user y el delivery user = NormalUserModel(user_data) user.save() delivery = DeliveryUserModel(delivery_data) delivery.save() assert user.favourPoints == 30 #Creo orden order_data_test = order_data.copy() order_data_test["products"] = [{ "product_id": p1.id, "units": 2 }, { "product_id": p2.id, "units": 1 }] order_data_test["discount"] = True order_data_test["user_id"] = user.user_id order_data_test["payWithPoints"] = False order_service = OrderService() order = order_service.create_order(order_data_test) #Oferto a delivery order_ofert_service = OrderOfferService() order_ofert_data["order_id"] = order.order_id order_ofert_data["delivery_id"] = delivery.user_id order_ofert_id = order_ofert_service.create_order_ofert( order_ofert_data) order_ofert_service.update_offer_state(delivery.user_id, order_ofert_id, 'accepted') assert order.state == 'onWay' #Completo orden order_service.order_delivered(order.order_id) assert user.favourPoints == 20
def test_get_deliverys_ordered(self): from src.auth.models.user_table import DeliveryUserModel user = DeliveryUserModel(delivery_data) user.latitude = -34.849859 user.longitude = -58.386222 user.save() user_d = DeliveryUserModel(delivery2_data) user_d.latitude = -34.859575 user_d.longitude = -58.380182 user_d.save() response = self.client.get( '/deliveries?latitude=-34.859138&longitude=-58.387252&cantidad=3', data=json.dumps({ "fullName": "realuser", "email": "extra", "password": "******" }), content_type='application/json') assert response._status_code == 200
def test_get_deliverys_direc_ordered(self): from src.auth.models.user_table import DeliveryUserModel from src.auth.services.delivery_service import DeliveryService from src.auth.services.direc_service import DirecService user = DeliveryUserModel(delivery_data) user.latitude = -34.849859 user.longitude = -58.386222 user.save() user_d = DeliveryUserModel(delivery2_data) user_d.latitude = -34.859575 user_d.longitude = -58.380182 user_d.save() delivery_service = DeliveryService() users = delivery_service.get_available_deliverys() assert users[0]["user_id"] == 1 assert len(users) == 2 direc_service = DirecService() shop = {"latitude": -34.859138, "longitude": -58.387252} users = direc_service.get_nearly_deliverys(shop, users) #Al ordenarlos el primer usuario tendria que ser el usuario 2 assert users[0]["user_id"] == 2