CCCPaste

Unit_tests_pet_shop_31.03.2022

class PetShop:
    def __init__(self, name: str):
        self.name = name
        self.food = {}
        self.pets = []

    def add_food(self, name: str, quantity: float):
        if quantity <= 0:
            raise ValueError('Quantity cannot be equal to or less than 0')

        if name not in self.food:
            self.food[name] = 0
        self.food[name] += quantity
        return f"Successfully added {quantity:.2f} grams of {name}."

    def add_pet(self, name: str):
        if name not in self.pets:
            self.pets.append(name)
            return f"Successfully added {name}."
        raise Exception("Cannot add a pet with the same name")

    def feed_pet(self, food_name: str, pet_name: str):
        if pet_name not in self.pets:
            raise Exception(f"Please insert a valid pet name")

        if food_name not in self.food:
            return f'You do not have {food_name}'

        if self.food[food_name] < 100:
            self.add_food(food_name, 1000.00)
            return "Adding food..."

        self.food[food_name] -= 100
        return f"{pet_name} was successfully fed"

    def __repr__(self):
        return f'Shop {self.name}:\n' \
               f'Pets: {", ".join(self.pets)}'