class TestSmallCar(): def _createCar(self): self.car = SmallCar(1, 2, 3, 4) def test_create(self): self._createCar() assert (self.car.type == "Small") assert (self.car.make == 1) assert (self.car.model == 2) assert (self.car.year == 3) assert (self.car.rego == 4) def test_rate(self): self._createCar() rate = self.car.rate assert (self.car.calculatePrice(1) == 1 * rate) assert (self.car.calculatePrice(2) == 2 * rate) assert (self.car.calculatePrice(3) == 3 * rate) assert (self.car.calculatePrice(4) == 4 * rate) assert (self.car.calculatePrice(5) == 5 * rate) assert (self.car.calculatePrice(6) == 6 * rate) assert (self.car.calculatePrice(7) == 7 * rate) # No discount for small cars rented past a week assert (self.car.calculatePrice(8) == 8 * rate)
def test_add_cars(): lookup = SmallCar("Mazda", "Falcon", 2019, 1) CRS.add_car(lookup) CRS.add_car(MediumCar("Mazda", "Falcon", 2019, 2)) CRS.add_car(LargeCar("Mazda", "Falcon", 2019, 3)) CRS.add_car(SmallCar("Mazda", "Commodore", 2019, 4)) CRS.add_car(MediumCar("Mazda", "Commodore", 2019, 5)) CRS.add_car(LargeCar("Mazda", "Commodore", 2019, 6)) CRS.add_car(SmallCar("Holden", "Falcon", 2019, 7)) CRS.add_car(MediumCar("Holden", "Falcon", 2019, 8)) CRS.add_car(LargeCar("Holden", "Falcon", 2019, 9)) CRS.add_car(SmallCar("Holden", "Commodore", 2019, 10)) CRS.add_car(MediumCar("Holden", "Commodore", 2019, 11)) CRS.add_car(LargeCar("Holden", "Commodore", 2019, 12)) CRS.add_car(SmallCar("Ford", "Falcon", 2019, 13)) CRS.add_car(MediumCar("Ford", "Falcon", 2019, 14)) CRS.add_car(LargeCar("Ford", "Falcon", 2019, 15)) CRS.add_car(SmallCar("Ford", "Commodore", 2019, 16)) CRS.add_car(MediumCar("Ford", "Commodore", 2019, 17)) CRS.add_car(LargeCar("Ford", "Commodore", 2019, 18)) CRS.add_car(PremiumCar("Tesla", "model x", 2019, 19)) CRS.add_car(PremiumCar("Tesla", "A4", 2019, 20)) CRS.add_car(PremiumCar("Tesla", "S class", 2019, 21)) CRS.add_car(PremiumCar("Audi", "model x", 2019, 22)) CRS.add_car(PremiumCar("Audi", "A4", 2019, 23)) CRS.add_car(PremiumCar("Audi", "S class", 2019, 24)) print("\n\n> Try to find car with valid rego") rego = 1 print(f"Looking for car with rego {rego}") car = CRS.get_car(rego) print(f"Returned: {car} (Expected: {None})") print(f"Test: {car is None}") assert (car is lookup)
def rental_fixture(): rego_generator = IdGenerator() licence_generator = IdGenerator() for name in ["Mazda", "Holden", "Ford"]: for model in ["Falcon", "Commodore"]: system.add_car(SmallCar(name, model, rego_generator.next())) system.add_car(MediumCar(name, model, rego_generator.next())) system.add_car(LargeCar(name, model, rego_generator.next())) for name in ["Tesla", "Audi"]: for model in ["model x", "A4", "S class"]: system.add_car(PremiumCar(name, model, rego_generator.next())) for name in ["Matt", "Isaac", "Taylor"]: system.add_customer(Customer(name, licence_generator.next())) return system
def _createCar(self): self.car = SmallCar(1, 2, 3, 4)
from customer import Customer from car import SmallCar, MediumCar, LargeCar, PremiumCar from car_rental_system import CarRentalSystem from location import Location # Populate the system CRS = CarRentalSystem() # Add customers CRS.add_customer(Customer("Matt", 18, 1, "*****@*****.**")) CRS.add_customer(Customer("Isaac", 31, 2, "*****@*****.**")) CRS.add_customer(Customer("Taylor", 27, 3, "*****@*****.**")) # Add cars CRS.add_car(SmallCar("Mazda", "Falcon", 2019, 1)) CRS.add_car(MediumCar("Mazda", "Falcon", 2019, 2)) CRS.add_car(LargeCar("Mazda", "Falcon", 2019, 3)) CRS.add_car(SmallCar("Mazda", "Commodore", 2019, 4)) CRS.add_car(MediumCar("Mazda", "Commodore", 2019, 5)) CRS.add_car(LargeCar("Mazda", "Commodore", 2019, 6)) CRS.add_car(SmallCar("Holden", "Falcon", 2019, 7)) CRS.add_car(MediumCar("Holden", "Falcon", 2019, 8)) CRS.add_car(LargeCar("Holden", "Falcon", 2019, 9)) CRS.add_car(SmallCar("Holden", "Commodore", 2019, 10)) CRS.add_car(MediumCar("Holden", "Commodore", 2019, 11)) CRS.add_car(LargeCar("Holden", "Commodore", 2019, 12)) CRS.add_car(SmallCar("Ford", "Falcon", 2019, 13)) CRS.add_car(MediumCar("Ford", "Falcon", 2019, 14)) CRS.add_car(LargeCar("Ford", "Falcon", 2019, 15)) CRS.add_car(SmallCar("Ford", "Commodore", 2019, 16)) CRS.add_car(MediumCar("Ford", "Commodore", 2019, 17))
class IdGenerator(): def __init__(self): self._id = 0 def next(self): self._id += 1 return self._id rego_generator = IdGenerator() licence_generator = IdGenerator() for name in ["Mazda", "Holden", "Ford"]: for model in ["Falcon", "Commodore"]: system.add_car(SmallCar(name, model, rego_generator.next())) system.add_car(MediumCar(name, model, rego_generator.next())) system.add_car(LargeCar(name, model, rego_generator.next())) for name in ["Tesla", "Audi"]: for model in ["model x", "A4", "S class"]: system.add_car(PremiumCar(name, model, rego_generator.next())) for name in ["Matt", "Isaac", "Taylor"]: system.add_customer(Customer(name, licence_generator.next())) print('~~~ Print all customers ~~~') print('\n'.join(str(c) for c in system.customers)) print('\n~~~ Print all cars ~~~') print('\n'.join(str(c) for c in system.cars))