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 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 TestItemQuantityUpdate(): def setup_method(self): self.ing1 = Ingredient("Cheese", 5, 40) self.side1 = Side("Wedges", 2, 50) self.drink1 = Drink("Cola", 3, 50) def test_add_to_item(self): self.ing1.update_quantity(10) assert self.ing1.total_quantity == 50 self.side1.update_quantity(10) assert self.side1.total_quantity == 60 self.drink1.update_quantity(10) assert self.drink1.total_quantity == 60
class TestUpdateQuantity(): def setup_method(self): self.ing1 = Ingredient("Cheese", 5, 40) self.side1 = Side("Wedges", 2, 50) self.drink1 = Drink("Cola", 3, 50) def test_subtract_from_item(self): self.ing1.update_quantity(-10) self.side1.update_quantity(-10) self.drink1.update_quantity(-10) assert self.ing1.total_quantity == 30 assert self.side1.total_quantity == 40 assert self.drink1.total_quantity == 40 def test_subtract_too_much_from_item(self): with pytest.raises(QuantityError): self.ing1.update_quantity(-70) self.side1.update_quantity(-70) self.drink1.update_quantity(-70)
def setup_method(self): self.ing1 = Ingredient("Cheese", 5, 40) self.side1 = Side("Wedges", 2, 50) self.drink1 = Drink("Cola", 3, 50)
def test_add_drink_over_quantity(self): new_drink = Drink("Juice", 1, 10) with pytest.raises(QuantityError): self.order.add_drink(new_drink, 20)
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_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_drink_setup_no_limit(): d = Drink("Juice", 4, 1) assert d.name == "Juice" assert d.price == 4 assert d.total_quantity == 1 assert d.limit == None
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) '''Visual Tests for US1''' i = Ingredient("Cheese", 4, 1) print(i.__str__()) s = Side("Fries", 2, 10, 1) print(s.__str__()) d = Drink("Juice", 3, 10) print(d.__str__())
''' Property ''' @property def name(self): return self._name @property def nitem(self): return self._nitems @property def items(self): return self._items ''' str ''' def __str__(self): return f"Menu {self._name}: {self._nitems} item(s)" if __name__ == "__main__": coke_zero = Drink("Coke Zero", 2.5) coke_diet = Drink("Coke Diet", 2.5) drink_menu = Menu("Drink") drink_menu.add_items(coke_diet, coke_zero) print(drink_menu) drink_menu.display()