Example #1
0
class Test(unittest.TestCase):

    def test_customer_init(self):
        self.cutomer1 = Customer("praburam", "Regular")
        self.customer2 = Customer("omprakash", "Reward")
        self.assertEqual(self.cutomer1.name, "praburam")
        self.assertEqual(self.customer2.name, "omprakash")
        self.assertNotEqual(self.cutomer1.cutomer_type, "Reward")
        self.assertEqual(self.customer2.cutomer_type, "Reward")

    def test_convert_dates_to_days(self):
        expected = ["Saturday", "Sunday", "Monday", "Tuesday"]
        user_dates = ["30/12/2017", "31/12/2017", "01/01/2018", "02/01/2018"]
        self.result = Controller()
        self.assertEqual(self.result.convert_dates_to_days(user_dates)[1], expected)
        self.assertNotEqual(self.result.convert_dates_to_days(["03/01/2018"])[1], "Friday")

    def test_seperate_days(self):
        self.result = Controller()
        self.assertEqual(self.result.seperate_days(["Sunday", "Friday"])[0], ["Friday"])
        self.assertNotEqual(self.result.seperate_days(["Sunday", "Friday"])[0], ["Sunday"])
        self.assertNotEqual(self.result.seperate_days(["Monday", "Friday"])[1], ["Friday"])

    def test_get_customer_type(self):
        self.result = Controller()
        self.customer1 = Customer("naren", "Regular")
        self.result.add_customers_details(self.customer1)
        self.customer2 = Customer("kala", "Reward")
        self.result.add_customers_details(self.customer2)
        self.assertEqual(self.result.get_customer_type("kala"), self.customer2)
        self.assertNotEqual(self.result.get_customer_type("naren"), self.customer2)

    def test_get_hotels_rate(self):
        self.result = Controller()
        self.balajibavan = Hotel("balajibavan", 3)
        self.balajibavan.add_price_details(200, 100, 90, 90)
        self.result.add_hotels_details(self.balajibavan)

        self.parsons = Hotel("parsons", 4)
        self.parsons.add_price_details(400, 300, 100, 70)
        self.result.add_hotels_details(self.parsons)

        self.vivera = Hotel("vivera", 5)
        self.vivera.add_price_details(400, 300, 90, 90)
        self.result.add_hotels_details(self.vivera)

        self.garden = Hotel("garden", "")
        self.garden.add_price_details(300, 100, 90, 90)
        self.result.add_hotels_details(self.garden)
        
        self.customer = Customer("kala", "Reward")
        self.result.get_hotels_rate(self.customer, ["Monday"], ["Sunday"])
        result, cheepest_hotel = self.result.cheepest_hotel()
        self.result.get_available_hotel(cheepest_hotel)

        self.result.get_hotels_rate(self.customer, ["Monday"], ["Sunday"])
        result, cheepest_hotel = self.result.cheepest_hotel()
        result = self.result.get_available_hotel(cheepest_hotel)
        self.assertTrue(result)
        self.assertNotEqual(result, False)
Example #2
0
if __name__ == "__main__":
    controller = Controller()

    customer1 = Customer("Naga", "Regular")
    controller.add_customers_details(customer1)
    customer2 = Customer("Rani", "Reward")
    controller.add_customers_details(customer2)
    customer3 = Customer("Raja", "Regular")
    controller.add_customers_details(customer3)
    customer4 = Customer("raveena", "Reward")
    controller.add_customers_details(customer4)
    customer5 = Customer("Nithya", "Regular")
    controller.add_customers_details(customer5)

    Lakewood = Hotel("Lakewood", 3)
    Lakewood.add_price_details(110, 90, 80, 80)
    controller.add_hotels_details(Lakewood)

    Bridgewood = Hotel("Bridgewood", 4)
    Bridgewood.add_price_details(160, 60, 110, 50)
    controller.hotels_details.append(Bridgewood)

    Ridgewood = Hotel("Ridgewood", 5)
    Ridgewood.add_price_details(220, 150, 100, 40)
    controller.add_hotels_details(Ridgewood)

    result, username, user_dates = controller.user_input()
    result, user_booking_days = controller.convert_dates_to_days(user_dates)
    week_days, week_ends = controller.seperate_days(user_booking_days)
    customer = controller.get_customer_type(username)
    result = controller.get_hotels_rate(customer, week_days, week_ends)