def test_weekend_count_full_week(self): request = customer.CustomerRequest("Regular", ["16Mar2009(mon)", "17Mar2009(tues)", "18Mar2009(wed)", "19Mar2009(thur)", "20Mar2009(fri)", "21Mar2009(sat)", "22Mar2009(sun)"], "") self.assertEqual(request.get_weekend_count(), 2)
def get_next(self): next_request = None valid_input = False # Iterate over the input source until it finds # valid input line or the input source is over while not valid_input and self._source_index < len(self._input_source): input_line = self._input_source[self._source_index].rstrip() if(TextFileReader.valid_input(input_line)): customer_type = input_line.split(':')[0] booking_dates = re.findall("\w+\(\w+\)", input_line) next_request = customer.CustomerRequest(customer_type, booking_dates, input_line) valid_input = True self._source_index += 1 return next_request
def test_compare_hotels_none_a_none_b(self): request = customer.CustomerRequest("Regular", [], "") self.assertIsNone(hotels.HotelChain.compare_hotels(None, None, request))
def test_request_cost_special_mixed(self): request = customer.CustomerRequest("Special", ["16Mar2009(sat)", "17Mar2009(sun)", "18Mar2009(mon)", "19Mar2009(tues)"], "") self.assertEqual(self._hotel_a.request_cost(request), 180)
def test_request_cost_regular_mixed(self): request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", "17Mar2009(sun)", "18Mar2009(mon)", "19Mar2009(tues)"], "") self.assertEqual(self._hotel_a.request_cost(request), 300)
def test_request_cost_special_weekend_2(self): request = customer.CustomerRequest("Special", ["16Mar2009(sat)", "17Mar2009(sun)"], "") self.assertEqual(self._hotel_a.request_cost(request), 70)
def test_request_cost_regular_weekend_2(self): request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", "17Mar2009(sun)"], "") self.assertEqual(self._hotel_a.request_cost(request), 120)
def test_compare_hotels_special(self): request = customer.CustomerRequest("Special", ["16Mar2009(fri)", "17Mar2009(sat)", "18Mar2009(sun)"], "") self.assertEqual(hotels.HotelChain.compare_hotels( self._hotel_a, self._hotel_b, request), self._hotel_b)
def test_request_cost_empty(self): request = customer.CustomerRequest("Regular", [], "") self.assertEqual(self._hotel_a.request_cost(request), 0)
def test_find_cheapest_hotel_exception(self): request = customer.CustomerRequest("Undefined", ["16Mar2009(fri)"], "") with self.assertRaises(KeyError): self._hotel_chain.find_cheapest_hotel(request)
def test_find_cheapest_hotel_special(self): request = customer.CustomerRequest("Special", ["16Mar2009(fri)", "17Mar2009(sat)", "18Mar2009(sun)"], "") self.assertEqual(self._hotel_chain.find_cheapest_hotel(request), self._hotel_b.name)
def test_find_cheapest_hotel_empty(self): request = customer.CustomerRequest("Regular", [], "") self.assertEqual(self._hotel_chain.find_cheapest_hotel(request), self._hotel_b.name)
def test_weekday_count_empty(self): request = customer.CustomerRequest("Regular", [], "") self.assertEqual(request.get_weekday_count(), 0)
def test_weekend_count_mixed(self): request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", "17Mar2009(sun)", "18Mar2009(mon)", "19Mar2009(tues)"], "") self.assertEqual(request.get_weekend_count(), 2)
def test_compare_hotels_a_none_b(self): request = customer.CustomerRequest("Regular", [], "") self.assertEqual(hotels.HotelChain.compare_hotels( self._hotel_a, None, request), self._hotel_a)
def test_compare_hotels_draw(self): request = customer.CustomerRequest("Regular", [], "") self.assertEqual(hotels.HotelChain.compare_hotels( self._hotel_a, self._hotel_b, request), self._hotel_b)
def test_request_cost_regular_weekday_2(self): request = customer.CustomerRequest("Regular", ["16Mar2009(mon)", "17Mar2009(tues)"], "") self.assertEqual(self._hotel_a.request_cost(request), 180)
def test_request_cost_special_weekday_2(self): request = customer.CustomerRequest("Special", ["16Mar2009(mon)", "17Mar2009(tues)"], "") self.assertEqual(self._hotel_a.request_cost(request), 110)
def test_weekend_count_only_2(self): request = customer.CustomerRequest("Regular", ["16Mar2009(sat)", "17Mar2009(sun)"], "") self.assertEqual(request.get_weekend_count(), 2)