def testTrondheimData(self): xml_data = open("testdata/trondheimflights.xml").read() flights = FlightParser.parse_flights(xml_data, MockAirlineFactory(), MockAirPortFactory(), MockFlightStatusFactory()) self.assertEqual(2, len(flights)) flight1 = flights[0] self.assertEqual("1170765", flight1.unique_id) self.assertEqual("BGT073", flight1.flight_id) self.assertEqual("BGT", flight1.airline.code) self.assertEqual("BNN", flight1.airport.code) self.assertEqual(Flight.Directions.ARRIVAL, flight1.direction) self.assertEqual("3", flight1.belt) self.assertEqual("E", flight1.status.code) flight2 = flights[1] self.assertEqual("1176338", flight2.unique_id) self.assertEqual("SK381", flight2.flight_id) self.assertEqual("SK", flight2.airline.code) self.assertEqual("OSL", flight2.airport.code) self.assertEqual(Flight.Directions.DEPARTURE, flight2.direction) self.assertEqual("EF", flight2.check_in) self.assertEqual("32", flight2.gate) self.assertEqual("D", flight2.status.code)
def testUnknownAirPort(self): xml_data = open("testdata/trondheimflights.xml").read() flights = FlightParser.parse_flights(xml_data, MockAirlineFactory(), MockFailingAirPortFactory(), MockFlightStatusFactory()) self.assertEqual(2, len(flights)) flight1 = flights[0] self.assertEqual("1170765", flight1.unique_id) self.assertEqual("BNN", flight1.airport.code) self.assertEqual("Unknown airport", flight1.airport.name) flight2 = flights[1] self.assertEqual("1176338", flight2.unique_id) self.assertEqual("OSL", flight2.airport.code) self.assertEqual("Unknown airport", flight2.airport.name)
def get_flights(airport, airline_factory, airport_factory, status_factory): query = Query(airport) xml = FlightInformationService.download_flight_xml(query) return FlightParser.parse_flights(xml, airline_factory, airport_factory, status_factory)
airports_xml = FlightInformationService.download_airport_xml() airports = AirPortParser.parse_airports(airports_xml) airport_factory = AirPortFactory(airports) airlines_xml = FlightInformationService.download_airline_xml() airlines = AirlineParser.parse_airlines(airlines_xml) airline_factory = AirlineFactory(airlines) status_xml = FlightInformationService.download_flight_status_xml() statuses = FlightStatusParser.parse_statuses(status_xml) status_factory = FlightStatusFactory(statuses) airport = airport_factory.get_airport_by_code(airportname) query = Query(airport) xml = FlightInformationService.download_flight_xml(query) flights = FlightParser.parse_flights(xml, airline_factory, airport_factory, status_factory) print "Flight information for %s (%s)" % (airport.name, airport.code) if not options.arrivals_only: print "\nDepartures:" for f in filter(is_departure, flights): print f if not options.departures_only: print "\nArrivals:" for f in filter(is_arrival, flights): print f