def create_passengers(self): self.all_routes = self.find_all_routes() passengers: List[Passenger] = [] passenger_number = 0 for route in self.all_routes: for _ in range(self.config.num_passengers_per_route): start_minute = random.randint(0, self.config.minutes) passengers.append( Passenger(route, start_minute, passenger_number)) passenger_number += 1 self.passengers = Passengers(passengers)
def test_duplicates_tickets(): maestro = Booker() name_list = [] passports = [] passengers = [] for i in range(50): name_list.append( "".join(random.choice(string.ascii_lowercase) for _ in range(7)) ) passports.append(random.randint(1000, 10000)) passengers.append(Passenger(name_list[i], passports[i])) maestro.reserve_ticket(passengers[i], True) assert checkIfDuplicates(maestro.ticket_list) == False
def main_menu(self): self.exit = False os.system("clear") print("---- MENU ----") known = False same_user = False if self.main_menu_it > 0: choice = input("Are you still " + self.current_user.pseudo + "---- y/n") if choice == "y": pass_n = input("Enter your passport number ---- ") if pass_n == self.current_user.passport_number: print("Welcome back !") same_user = True else: print( "Your passport number didn't correspond ! Resetting the menu." ) same_user = False if not (same_user): name = input("Enter your name ---- ") pass_n = input("Enter your passport number ---- ") for items, keys in self.passenger_dtb.items(): if pass_n in items: known = True else: known = False if not (known): self.passenger_dtb[pass_n] = Passenger(name, pass_n) else: print("Oh, you're already registered !") self.current_user = self.passenger_dtb[pass_n] print( "Hello " + self.current_user.pseudo + " what do you want to do ?\n 1 - Reserve a Ticket\n 2 - Cancel a reservation\n 3 - Display ticket information.\n 4 - Exit" ) opt = int(input("Choice ---- ")) if opt == 1: self.reserve_ticket(self.current_user) elif opt == 2: self.cancel_ticket(self.current_user) elif opt == 3: self.display_info(self.current_user) elif opt == 4: self.exit = True else: print("Not yet implemented.") self.main_menu_it += 1
def test_overbooking(): maestro = Booker() name_list = [] passports = [] passengers = [] for i in range(random.randint(500, 5000)): name_list.append( "".join(random.choice(string.ascii_lowercase) for _ in range(7)) ) passports.append(random.randint(1000, 10000)) passengers.append(Passenger(name_list[i], passports[i])) maestro.reserve_ticket(passengers[i], True) for elem in maestro.destinations: assert(maestro.flight_dtb[elem].max >= len(maestro.flight_dtb[elem].passenger_list))
def test_registered_passenger(): maestro = Booker() name_list = [] passports = [] passengers = [] for i in range(random.randint(500, 5000)): name_list.append( "".join(random.choice(string.ascii_lowercase) for _ in range(7)) ) passports.append(random.randint(1000, 10000)) passengers.append(Passenger(name_list[i], passports[i])) maestro.reserve_ticket(passengers[i], True) for elem in maestro.destinations: flight = maestro.flight_dtb[elem] for elem in flight.passenger_list: assert(elem in maestro.passenger_dtb[x] for x in passports)
def test_ticket_number(): booker = Booker() p1 = Passenger("Norbert", 101) booker.reserve_ticket(p1, True) assert len(booker.ticket_list) == 1