def setup_order(): order = Order(1) order.add_side(Side("Fries", 1, 10), 1) order.add_side(Side("Cake", 3, 10), 2) order.add_drink(Drink("Juice", 3, 10), 2) order.add_drink(Drink("Soda", 3, 10), 1) burger = Burger() burger.add_ingredient(Ingredient("Patty", 1, 10), 1) burger.add_ingredient(Ingredient("Cheese", 1, 10), 2) order.add_creation(burger) return order
class TestAddToOrder(): def setup_method(self): self.order = Order(1) def test_add_creation(self): new_creation = Burger() self.order.add_creation(new_creation) assert len(self.order.creations) == 1 assert self.order.creations[0] == new_creation def test_add_multiple_creations(self): creation1 = Burger() creation2 = Wrap() self.order.add_creation(creation1) self.order.add_creation(creation2) assert len(self.order.creations) == 2 assert creation1 in self.order.creations assert creation2 in self.order.creations def test_add_side_successful(self): new_side = Side("Fries", 1, 10) self.order.add_side(new_side, 2) assert len(self.order.sides) == 1 assert self.order.sides[new_side] == 2 def test_add_drink_successful(self): new_drink = Drink("Juice", 1, 10) self.order.add_drink(new_drink, 2) assert len(self.order.drinks) == 1 assert self.order.drinks[new_drink] == 2 def test_add_side_over_limit(self): new_side = Side("Fries", 1, 10, 2) with pytest.raises(LimitError): self.order.add_side(new_side, 3) def test_add_drink_over_limit(self): new_drink = Drink("Juice", 1, 10, 2) with pytest.raises(LimitError): self.order.add_drink(new_drink, 3) def test_add_side_over_quantity(self): new_side = Side("Fries", 1, 10) with pytest.raises(QuantityError): self.order.add_side(new_side, 20) def test_add_drink_over_quantity(self): new_drink = Drink("Juice", 1, 10) with pytest.raises(QuantityError): self.order.add_drink(new_drink, 20)
class TestShowOrderStatus(): #US5 def setup_method(self): self.order = Order(1) self.order.add_side(Side("Fries", 1, 10), 1) self.order.add_side(Side("Cake", 3, 10), 2) self.order.add_drink(Drink("Juice", 3, 10), 2) self.order.add_drink(Drink("Soda", 3, 10), 1) burger = Burger() burger.add_ingredient(Ingredient("Patty", 1, 10), 1) burger.add_ingredient(Ingredient("Cheese", 1, 10), 2) self.order.add_creation(burger) def test_status_str(self): assert self.order.status_str( ) == "Order ID 1 is currently being prepared." self.order.set_status(True) assert self.order.status_str( ) == "Order ID 1 is ready to be picked up."