Example #1
0
 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)
Example #2
0
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
Example #3
0
    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
Example #4
0
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))
Example #5
0
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)
Example #6
0
def test_ticket_number():
    booker = Booker()
    p1 = Passenger("Norbert", 101)
    booker.reserve_ticket(p1, True)
    assert len(booker.ticket_list) == 1