def test_to_string(self): f1 = Flight(from_location="San Francisco", to_location="Orlando", from_location_code="SFO", to_location_code="MCO", departure_time=datetime(2020, 1, 1, 10, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 12, 10, 10).timestamp(), airline="UA", flight_number=1120) f2 = Flight(from_location="Orlando", to_location="Columbus", from_location_code="MCO", to_location_code="CMH", departure_time=datetime(2020, 1, 1, 12, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 14, 10, 10).timestamp(), airline="UA", flight_number=1121) l = Leg(from_location="San Francisco", to_location="Orlando", from_location_code="SFO", to_location_code="MCO", departure_time=datetime(2020, 1, 1, 10, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 14, 10, 10).timestamp(), flights=[f1, f2]) s = "" s += "Leg from San Francisco to Orlando\n" s += " Duration: 4.0 hours\n" s += " Layovers: 1\n" s += " " + f1.__str__() + "\n" s += " " + f2.__str__() + "\n" self.assertEqual(s, l.__str__())
def test_duration(self): departure_time = datetime(2020, 1, 1, 10, 10, 10) departure_time_stamp = departure_time.timestamp() arrival_time = datetime(2020, 1, 1, 12, 10, 10) arrival_time_stamp = arrival_time.timestamp() l = Leg(departure_time=departure_time_stamp, arrival_time=arrival_time_stamp) self.assertEqual(l.duration.total_seconds(), 7200)
def test_empty_leg(self): l = Leg() self.assertEqual(l.departure_time, datetime(1970, 1, 1)) self.assertEqual(l.arrival_time, datetime(1970, 1, 1)) self.assertEqual(l.flights, []) self.assertEqual(l.from_location, "") self.assertEqual(l.from_location_code, "") self.assertEqual(l.to_location, "") self.assertEqual(l.to_location_code, "") self.assertEqual(l.duration, 0) self.assertEqual(l.layovers, -1)
def build_trip(trip_response): t = Trip(price=trip_response["price"], from_location=trip_response["cityFrom"], from_location_code=trip_response["flyFrom"], to_location=trip_response["cityTo"], to_location_code=trip_response["flyTo"], book_url=trip_response["deep_link"]) t.add_legs( Leg.build_legs(trip_response["route"], trip_response["flyFrom"], trip_response["flyTo"], trip_response["cityFrom"], trip_response["cityTo"])) return t
def test_layovers(self): l = Leg(flights=[{"flight_number": 1}, {"flight_number": 2}]) self.assertEqual(l.layovers, 1)
def test_arrival_time(self): arrival_time = datetime(2020, 1, 1, 10, 10, 10).replace(tzinfo=pytz.UTC) arrival_time_stamp = arrival_time.timestamp() l = Leg(arrival_time=arrival_time_stamp) self.assertEqual(l.arrival_time, arrival_time)
def test_departure_time(self): departure_time = datetime(2020, 1, 1, 10, 10, 10).replace(tzinfo=pytz.UTC) departure_time_stamp = departure_time.timestamp() l = Leg(departure_time=departure_time_stamp) self.assertEqual(l.departure_time, departure_time)
def test_flights(self): l = Leg(flights=[{"flight_number": 1}, {"flight_number": 2}]) self.assertEqual(len(l.flights), 2) self.assertEqual(l.flights[0]["flight_number"], 1) self.assertEqual(l.flights[1]["flight_number"], 2)
def test_to_location_code(self): l = Leg(to_location_code="MCO") self.assertEqual(l.to_location_code, "MCO")
def test_to_location(self): l = Leg(to_location="Orlando") self.assertEqual(l.to_location, "Orlando")
def test_from_location_code(self): l = Leg(from_location_code="SFO") self.assertEqual(l.from_location_code, "SFO")
def test_from_location(self): l = Leg(from_location="San Francisco") self.assertEqual(l.from_location, "San Francisco")
def test_to_string(self): f1 = Flight(from_location="San Francisco", to_location="Orlando", from_location_code="SFO", to_location_code="MCO", departure_time=datetime(2020, 1, 1, 10, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 12, 10, 10).timestamp(), airline="UA", flight_number=1120) f2 = Flight(from_location="Orlando", to_location="Columbus", from_location_code="MCO", to_location_code="CMH", departure_time=datetime(2020, 1, 1, 12, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 14, 10, 10).timestamp(), airline="UA", flight_number=1121) l1 = Leg(from_location="San Francisco", to_location="Orlando", from_location_code="SFO", to_location_code="CMH", departure_time=datetime(2020, 1, 1, 10, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 14, 10, 10).timestamp(), flights=[f1, f2]) f3 = Flight(from_location="Columbus", to_location="Orlando", from_location_code="CMH", to_location_code="MCO", departure_time=datetime(2020, 1, 1, 16, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 18, 10, 10).timestamp(), airline="UA", flight_number=1122) f4 = Flight(from_location="Orlando", to_location="San Francisco", from_location_code="MCO", to_location_code="SFO", departure_time=datetime(2020, 1, 1, 18, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 20, 10, 10).timestamp(), airline="UA", flight_number=1123) l2 = Leg(from_location="Columbus", to_location="San Francisco", from_location_code="CMH", to_location_code="SFO", departure_time=datetime(2020, 1, 1, 16, 10, 10).timestamp(), arrival_time=datetime(2020, 1, 1, 20, 10, 10).timestamp(), flights=[f3, f4]) t = Trip(price=100, from_location="San Francisco", from_location_code="SFO", to_location="Columbus", to_location_code="CMH", book_url="https://google.com") t.add_legs([l1, l2]) s = "" s += "Trip from San Francisco to Columbus\n" s += " Price: $100\n" s += " Link: https://google.com\n" s += " Legs:\n" s += " " + l1.__str__() + "\n" s += " " + l2.__str__() + "\n" self.assertEqual(s, t.__str__())