def test_get_csv_fields(self): for rows in ALL_CSV_ROWS: td = TransitData() for row in rows: td.shapes.add(**row) shape = iter(td.shapes).__next__() self.assertListEqual( sorted(shape.get_csv_fields()), sorted(list({key for row in rows for key in row.keys()})))
def test_remove(self): td = TransitData() service = td.calendar.add(**FULL_SERVICE_CSV_ROW) self.assertIn(service, td.calendar) td.calendar.remove(service) self.assertNotIn(service, td.calendar) td.calendar.add(**FULL_SERVICE_CSV_ROW) self.assertIn(service, td.calendar) td.calendar.remove(service.id) self.assertNotIn(service, td.calendar)
def test_add_object(self): for rows in ALL_CSV_ROWS: source_td = TransitData() dest_td = TransitData() for row in rows: source_td.shapes.add(**row) source_shape = iter(source_td.shapes).next() dest_shape = dest_td.shapes.add_object(source_shape, recursive=True) self.assertEqual(source_shape, dest_shape) shapes_num = len(dest_td.shapes) dest_td.shapes.add_object(source_shape) self.assertEqual(shapes_num, len(dest_td.shapes)) source_shape.shape_points[-1].sequence += 1 self.assertRaises(Exception, dest_td.shapes.add_object, source_shape)
def test_remove(self): td = TransitData() agency = td.agencies.add(**FULL_AGENCY_CSV_ROW) self.assertIn(agency, td.agencies) td.agencies.remove(agency) self.assertNotIn(agency, td.agencies) td.agencies.add(**FULL_AGENCY_CSV_ROW) self.assertIn(agency, td.agencies) td.agencies.remove(agency.id) self.assertNotIn(agency, td.agencies)
def load_gtfs(gtfs_file_path): td = TransitData(gtfs_file_path) print "TransitData object contains:" print "%d agencies" % (len(td.agencies)) print "%d routes" % (len(td.routes)) print "%d trips" % (len(td.trips)) print "%d stops" % (len(td.stops)) print "%d shapes" % (len(td.shapes)) print "%d services" % (len(td.calendar)) return td
def test_remove(self): td = TransitData() stop = None for row in FULL_STOP_CSV_ROWS: stop = td.stops.add(**row) self.assertIn(stop, td.stops) td.stops.remove(stop, clean_after=False) self.assertNotIn(stop, td.stops) td.stops.add(**FULL_STOP_CSV_ROWS[-1]) self.assertIn(stop, td.stops) td.stops.remove(stop.id) self.assertNotIn(stop, td.stops)
def test_remove(self): td = TransitData() for row in FULL_SHAPE_CSV_ROWS: td.shapes.add(**row) shape_id = FULL_SHAPE_CSV_ROWS[-1]["shape_id"] self.assertIn(shape_id, td.shapes) td.shapes.remove(td.shapes[shape_id], clean_after=False) self.assertNotIn(shape_id, td.shapes) for row in FULL_SHAPE_CSV_ROWS: td.shapes.add(**row) self.assertIn(shape_id, td.shapes) td.shapes.remove(shape_id) self.assertNotIn(shape_id, td.shapes)
def test_minimum_properties(self): td = TransitData() service = td.calendar.add(**MINI_SERVICE_CSV_ROW) self.assertTrue(hasattr(service, "id")) self.assertRaises(Exception, setattr, service, "id", "2") test_property(self, service, property_name="start_date", new_value=TOMORROW_DATE) test_property(self, service, property_name="end_date", new_value=TOMORROW_DATE) test_property(self, service, property_name="saturday", new_value=True) test_property(self, service, property_name="sunday", new_value=False) test_property(self, service, property_name="monday", new_value=True) test_property(self, service, property_name="tuesday", new_value=True) test_property(self, service, property_name="wednesday", new_value=True) test_property(self, service, property_name="thursday", new_value=True) test_property(self, service, property_name="friday", new_value=True)
def test_create_partial(self): partial = {15: ["58", "358", "458"]} for file_path in constants.GTFS_TEST_FILES: print "testing '%s'" % (file_path,) td1 = TransitData(gtfs_file=file_path) td2 = create_partial_transit_data(td1, partial) self.assertListEqual(sorted(agency.id for agency in td2.agencies), sorted(agency for agency in partial.iterkeys() if agency in td1.agencies)) for agency in td2.agencies: if partial[agency.id] is not None: self.assertListEqual(sorted(line.line_number for line in agency.lines), sorted(line.line_number for line in td1.agencies[agency.id].lines if line.line_number in partial[agency.id])) else: self.assertListEqual(sorted(line.line_number for line in agency.lines), sorted(line.line_number for line in td1.agencies[agency.id].lines))
def load_partial_gtfs2(file_path, partial): """ :type file_path: str :type partial: dict[int, list[str]] | dict[int, None] """ td = TransitData(file_path) td = create_partial_transit_data(td, partial) print "TransitData object contains:" print "%d agencies" % (len(td.agencies)) print "%d routes" % (len(td.routes)) print "%d trips" % (len(td.trips)) print "%d stops" % (len(td.stops)) print "%d shapes" % (len(td.shapes)) print "%d services" % (len(td.calendar)) return td
def test_maximum_properties(self): td = TransitData() agency = td.agencies.add(**FULL_AGENCY_CSV_ROW) self.assertTrue(hasattr(agency, "id")) self.assertRaises(Exception, setattr, agency, "id", 2) test_property(self, agency, property_name="agency_name", new_value="test name") test_property(self, agency, property_name="agency_url", new_value="http://testurl.com/") test_property(self, agency, property_name="agency_timezone", new_value="Asia/Hebron") test_property(self, agency, property_name="agency_lang", new_value="EN") test_property(self, agency, property_name="agency_phone", new_value="*1234") test_property(self, agency, property_name="agency_email", new_value="*****@*****.**") test_property(self, agency, property_name="agency_fare_url", new_value="http://testurl.com/fare/") self.assertIn("test_attribute", agency.attributes) agency.attributes["test_attribute"] = "new test data" self.assertEqual(agency.attributes["test_attribute"], "new test data") self.assertNotIn("test_attribute2", agency.attributes) agency.attributes["test_attribute2"] = "more test data" self.assertEqual(agency.attributes["test_attribute2"], "more test data")
def test_minimum_properties(self): td = TransitData() stop = None for row in MINI_STOP_CSV_ROWS: stop = td.stops.add(**row) self.assertTrue(hasattr(stop, "id")) self.assertRaises(Exception, setattr, stop, "id", 2) test_property(self, stop, property_name="stop_name", new_value="test name") test_property(self, stop, property_name="stop_lat", new_value=0) test_property(self, stop, property_name="stop_lon", new_value=0) test_property(self, stop, property_name="stop_code", new_value="1") test_property(self, stop, property_name="stop_desc", new_value="test desc") test_property(self, stop, property_name="zone_id", new_value=2) test_property(self, stop, property_name="stop_url", new_value="http://testurl.com/") test_property(self, stop, property_name="location_type", new_value=1) test_property(self, stop, property_name="parent_station", new_value=stop) test_property(self, stop, property_name="stop_timezone", new_value="Asia/Hebron") test_property(self, stop, property_name="wheelchair_boarding", new_value=True)
def test_minimum_properties(self): td = TransitData() shape_point = None for row in MINI_SHAPE_CSV_ROWS: shape_point = td.shapes.add(**row) shape = iter(td.shapes).next() self.assertTrue(hasattr(shape, "id")) self.assertRaises(Exception, setattr, shape, "id", "2") test_property(self, shape_point, property_name="latitude", new_value=0) test_property(self, shape_point, property_name="longitude", new_value=0) test_property(self, shape_point, property_name="sequence", new_value=2) test_property(self, shape_point, property_name="shape_dist_traveled", new_value=60.2)
def test_add(self): for row in ALL_CSV_ROWS: td = TransitData() service = td.calendar.add(**row) self.assertIn(service, td.calendar) self.assertIsInstance(service.id, str) self.assertEqual(service.id, row["service_id"]) self.assertEqual(service.start_date.strftime("%Y%m%d"), row.get("start_date")) self.assertEqual(service.end_date.strftime("%Y%m%d"), row.get("end_date")) self.assertEqual(service.sunday, row.get("sunday")) self.assertEqual(service.monday, row.get("monday")) self.assertEqual(service.tuesday, row.get("tuesday")) self.assertEqual(service.wednesday, row.get("wednesday")) self.assertEqual(service.thursday, row.get("thursday")) self.assertEqual(service.friday, row.get("friday")) self.assertEqual(service.saturday, row.get("saturday")) self.assertEqual(service.attributes.get("test_attribute"), row.get("test_attribute")) self.assertEqual(len(service.attributes), len(row) - 10) self.assertRaises(Exception, td.calendar.add, **row) self.assertEqual(len(td.calendar), 1)
def test_get_csv_line(self): for rows in ALL_CSV_ROWS: td = TransitData() for row in rows: stop = td.stops.add(**row) self.assertDictEqual(stop.to_csv_line(), row)
def test_get_csv_fields(self): for row in ALL_CSV_ROWS: td = TransitData() service = td.calendar.add(**row) self.assertListEqual(sorted(service.get_csv_fields()), sorted(row.keys()))
def test_clean(self): td = TransitData() td.agencies.add(**FULL_AGENCY_CSV_ROW) self.assertGreater(len(td.agencies), 0) td.agencies.clean() self.assertEqual(len(td.agencies), 0)
def test_clean(self): td = TransitData() td.calendar.add(**FULL_SERVICE_CSV_ROW) self.assertGreater(len(td.calendar), 0) td.calendar.clean() self.assertEqual(len(td.calendar), 0)
def create_full_transit_data(): td = TransitData() td.stops.add(stop_id='10000', stop_name="Jerusalem Central Station", stop_lat=31.789467, stop_lon=35.203715, stop_code="10000", stop_desc="Jerusalem Central Station", zone_id=1, location_type=1, stop_timezone="Asia/Jerusalem", test_attribute="stop test data") td.stops.add(stop_id='10001', stop_name="Platform 1", stop_lat=31.789467, stop_lon=35.203715, stop_code="10001", stop_desc="Jerusalem Central Station, Platform 1", zone_id=1, location_type=0, parent_station='10000', wheelchair_boarding=True, stop_url="http://stop.com/") td.stops.add(stop_id='20000', stop_name="Tel Aviv Central Station", stop_lat=32.055818, stop_lon=34.779427, stop_code="20000", stop_desc="Tel Aviv Central Station", zone_id=2, wheelchair_boarding=1) td.stops.add(stop_id='30000', stop_name="Netania Central Station", stop_lat=32.326889, stop_lon=34.858740, stop_code="30000", stop_desc="Netania Central Station", zone_id=3, wheelchair_boarding=False) td.shapes.add(shape_id='1', shape_pt_lat=td.stops['10001'].stop_lat, shape_pt_lon=td.stops['10001'].stop_lon, shape_pt_sequence=0, shape_dist_traveled=0) td.shapes.add(shape_id='1', shape_pt_lat=td.stops['20000'].stop_lat, shape_pt_lon=td.stops['20000'].stop_lon, shape_pt_sequence=1, shape_dist_traveled=None, test_attribute="shape test data") td.shapes.add(shape_id='2', shape_pt_lat=td.stops['20000'].stop_lat, shape_pt_lon=td.stops['20000'].stop_lon, shape_pt_sequence=0) td.shapes.add(shape_id='2', shape_pt_lat=td.stops['10001'].stop_lat, shape_pt_lon=td.stops['10001'].stop_lon, shape_pt_sequence=1) td.calendar.add(service_id='1', start_date=date.today(), end_date=date.today() + timedelta(weeks=8), sunday=True, monday=True, tuesday=True, wednesday=True, thursday=True) td.calendar.add(service_id='2', start_date=date.today(), end_date=date.today() + timedelta(weeks=8), sunday=True, monday=True, tuesday=True, wednesday=True, thursday=True, friday=True) td.calendar.add(service_id='3', start_date=date.today(), end_date=date.today() + timedelta(weeks=8), friday=True) td.calendar.add(service_id='4', start_date=date.today(), end_date=date.today() + timedelta(weeks=8), saturday=True) td.calendar.add(service_id='5', start_date=date.today(), end_date=date.today() + timedelta(weeks=8), sunday=True, monday=False, tuesday=False, wednesday=False, thursday=False, friday=False, saturday=False, test_attribute="service test data") td.agencies.add(agency_id='1', agency_name="agency name 1", agency_url="http://www.agencyname1.com/", agency_timezone="Asia/Jerusalem", agency_lang="HE", agency_phone="+972-2-1234567", agency_email="*****@*****.**", agency_fare_url="http://www.agencyname1.com/fare", test_attribute="test data 1") td.agencies.add(agency_id='15', agency_name="agency name 15", agency_url="https://www.agencyname15.com/", agency_timezone="Asia/Jerusalem", agency_phone="*1234", agency_email="*****@*****.**", agency_fare_url="https://www.agencyname15.com/fare") td.routes.add(route_id="1001", route_short_name="1", route_long_name="route 1001 long name", route_type=3, agency_id='1', route_desc=None, route_color=None, route_text_color=None) td.routes.add(route_id="1002", route_short_name="2", route_long_name="route 1002 long name", route_type=3, agency_id='1', route_desc=None, route_color=None, route_text_color=None) td.routes.add(route_id="1003", route_short_name="3", route_long_name="route 1003 long name", route_type=3, agency_id='1', route_desc=None, route_color=None, route_text_color=None) td.routes.add(route_id="30001", route_short_name="301", route_long_name="route 30001 long name", route_type=2, agency_id='15', route_desc="Rail!", route_url="http://routeurl.com/", route_color=None, route_text_color=None, route_sort_order=1, test_attribute="test data 30001") td.trips.add(trip_id="1001_1", route_id="1001", service_id=2, shape_id=1, bikes_allowed=False) td.trips.add(trip_id="1001_2", route_id="1001", service_id=1, shape_id=2, bikes_allowed=None) td.trips.add(trip_id="1002_1", route_id="1002", service_id=1) td.trips.add(trip_id="1002_2", route_id="1002", service_id=3) td.trips.add(trip_id="1002_3", route_id="1002", service_id=4) td.trips.add(trip_id="1002_4", route_id="1002", service_id=5) td.trips.add(trip_id="1003_1", route_id="1003", service_id=1, wheelchair_accessible=False) td.trips.add(trip_id="30001_1", route_id="30001", service_id=2, trip_headsign="trip headsign", trip_short_name="trip 30001_1 short name", direction_id=1, block_id=1, bikes_allowed=True, wheelchair_accessible=True, original_trip_id="30001_1 origin", test_attribute="trip test data") td.add_stop_time(trip_id="1001_1", arrival_time=timedelta(hours=6), departure_time=timedelta(hours=6, minutes=5), stop_id='10001', stop_sequence=0, drop_off_type=1, shape_dist_traveled=0) td.add_stop_time(trip_id="1001_1", arrival_time=timedelta(hours=7), departure_time=timedelta(hours=7), stop_id='20000', stop_sequence=1, pickup_type=1, shape_dist_traveled=65.0) td.add_stop_time(trip_id="1001_2", arrival_time=timedelta(hours=12), departure_time=timedelta(hours=12), stop_id='10001', stop_sequence=0, drop_off_type=1, shape_dist_traveled=0) td.add_stop_time(trip_id="1001_2", arrival_time=timedelta(hours=13), departure_time=timedelta(hours=13), stop_id='20000', stop_sequence=1, pickup_type=1, shape_dist_traveled=65.0) td.add_stop_time(trip_id="1002_1", arrival_time=timedelta(hours=6), departure_time=timedelta(hours=6, minutes=5), stop_id='20000', stop_sequence=0, drop_off_type=1) td.add_stop_time(trip_id="1002_1", arrival_time=timedelta(hours=7), departure_time=timedelta(hours=7), stop_id='10001', stop_sequence=1, pickup_type=1) td.add_stop_time(trip_id="1002_2", arrival_time=timedelta(hours=12), departure_time=timedelta(hours=12, minutes=5), stop_id='20000', stop_sequence=0, drop_off_type=1) td.add_stop_time(trip_id="1002_2", arrival_time=timedelta(hours=13), departure_time=timedelta(hours=13), stop_id='10001', stop_sequence=1, pickup_type=1) td.add_stop_time(trip_id="1002_3", arrival_time=timedelta(hours=23, minutes=30), departure_time=timedelta(hours=23, minutes=35), stop_id='20000', stop_sequence=0, drop_off_type=1) td.add_stop_time(trip_id="1002_3", arrival_time=timedelta(hours=25, minutes=1), departure_time=timedelta(hours=25, minutes=1), stop_id=10001, stop_sequence=1, pickup_type=1) td.add_stop_time(trip_id="1002_4", arrival_time=timedelta(hours=8), departure_time=timedelta(hours=8, minutes=5), stop_id='20000', stop_sequence=0, drop_off_type=1) td.add_stop_time(trip_id="1002_4", arrival_time=timedelta(hours=9), departure_time=timedelta(hours=9), stop_id='10001', stop_sequence=1, pickup_type=1) td.add_stop_time(trip_id="1003_1", arrival_time=timedelta(hours=23), departure_time=timedelta(hours=23, minutes=5), stop_id='10001', stop_sequence=0, drop_off_type=1) td.add_stop_time(trip_id="1003_1", arrival_time=timedelta(hours=24), departure_time=timedelta(hours=24), stop_id='20000', stop_sequence=1) td.add_stop_time(trip_id="1003_1", arrival_time=timedelta(hours=25, minutes=13), departure_time=timedelta(hours=25, minutes=13), stop_id=30000, stop_sequence=2, pickup_type=1) td.add_stop_time(trip_id="30001_1", arrival_time=timedelta(hours=11, minutes=30), departure_time=timedelta(hours=11, minutes=30), stop_id=20000, stop_sequence=0, drop_off_type=1, stop_headsign="Tel Aviv Central Station headsign", timepoint=1, test_attribute="stop time test data 1") td.add_stop_time(trip_id="30001_1", arrival_time=timedelta(hours=12, minutes=20), departure_time=timedelta(hours=12, minutes=20), stop_id=30000, stop_sequence=1, pickup_type=1, stop_headsign="Netania Central Station headsign", timepoint=0, test_attribute="stop time test data 2") td.fare_attributes.add(fare_id="1", price=10, currency_type="ILS", payment_method=0, transfers=0) td.fare_attributes.add(fare_id="2", price=12.2, currency_type="ILS", payment_method=0, transfers=0) td.fare_attributes.add(fare_id="3", price=16.85, currency_type="ILS", payment_method=1, transfers=0, agency_id=15, transfer_duration=1, test_attribute="fare attribute test data") td.fare_rules.add(fare_id="3", route_id="30001") td.fare_rules.add(fare_id="1", origin_id=1, destination_id=2) td.fare_rules.add(fare_id="1", origin_id=2, destination_id=1) td.fare_rules.add(fare_id="1", route_id="1003", contains_id=3) td.fare_rules.add(fare_id="2", route_id="1003", test_attribute="fare rule test data") td.translator.add_translate("EN", "hello", "hello") td.translator.add_translate("IT", "hello", "ciao") td.translator.add_translate("GR", "hello", "hallo") td.translator.add_translate("NE", "hello", "hallo") td.translator.add_translate("FR", "hello", "bonjour") td.translator.add_translate("EN", "bye", "bye") td.translator.add_translate("IT", "bye", "addio") td.translator.add_translate("NE", "bye", "doei") td.translator.add_translate("FR", "bye", "au revoir") td.translator.add_translate("EN", "test", "test") dome_file = StringIO() writer = csv.DictWriter(dome_file, ["key1", "key2"]) writer.writeheader() writer.writerow({"key1": "value1_1", "key2": "value2_1"}) writer.writerow({"key1": "value1_2", "key2": "value2_2"}) dome_file.seek(0) td.unknown_files["unknown.txt"] = UnknownFile(dome_file) dome_file.close() return td
def test_get_csv_line(self): for row in ALL_CSV_ROWS: td = TransitData() agency = td.agencies.add(**row) self.assertDictEqual(agency.to_csv_line(), row)
def test_not_equal_operator(self): original_td = TransitData() original_service = original_td.calendar.add(**FULL_SERVICE_CSV_ROW) new_td = TransitData() row = dict(FULL_SERVICE_CSV_ROW) row["service_id"] = 10 edited_service = new_td.calendar.add(**row) self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.start_date = TOMORROW_DATE self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.end_date = TOMORROW_DATE + timedelta(days=1) self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.sunday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.monday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.tuesday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.wednesday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.thursday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.friday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.saturday = False self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.attributes["test_attribute"] = "new test data" self.assertNotEqual(original_service, edited_service) new_td = TransitData() edited_service = new_td.calendar.add(**FULL_SERVICE_CSV_ROW) edited_service.attributes["test_attribute2"] = "new test data" self.assertNotEqual(original_service, edited_service)
def test_not_equal_operator(self): original_td = TransitData() for row in FULL_SHAPE_CSV_ROWS: original_td.shapes.add(**row) new_td = TransitData() rows = [dict(row) for row in FULL_SHAPE_CSV_ROWS] for row in rows: row["shape_id"] = 10 for row, original_shape_point in zip( rows, iter(original_td.shapes).next().shape_points): new_td.shapes.add(**row) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next()) new_td = TransitData() for row, original_shape_point in zip( FULL_SHAPE_CSV_ROWS, iter(original_td.shapes).next().shape_points): edited_shape_point = new_td.shapes.add(**row) edited_shape_point.latitude = 0 self.assertNotEqual(original_shape_point, edited_shape_point) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next()) new_td = TransitData() for row, original_shape_point in zip( FULL_SHAPE_CSV_ROWS, iter(original_td.shapes).next().shape_points): edited_shape_point = new_td.shapes.add(**row) edited_shape_point.longitude = 0 self.assertNotEqual(original_shape_point, edited_shape_point) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next()) new_td = TransitData() for row, original_shape_point in zip( FULL_SHAPE_CSV_ROWS, iter(original_td.shapes).next().shape_points): edited_shape_point = new_td.shapes.add(**row) edited_shape_point.sequence += 1 self.assertNotEqual(original_shape_point, edited_shape_point) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next()) new_td = TransitData() for row, original_shape_point in zip( FULL_SHAPE_CSV_ROWS, iter(original_td.shapes).next().shape_points): edited_shape_point = new_td.shapes.add(**row) edited_shape_point.shape_dist_traveled = 62.2 self.assertNotEqual(original_shape_point, edited_shape_point) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next()) new_td = TransitData() for row, original_shape_point in zip( FULL_SHAPE_CSV_ROWS, iter(original_td.shapes).next().shape_points): edited_shape_point = new_td.shapes.add(**row) edited_shape_point.attributes["test_attribute"] = "new test data" self.assertNotEqual(original_shape_point, edited_shape_point) self.assertNotEqual( iter(original_td.shapes).next(), iter(new_td.shapes).next())
def test_get_csv_fields(self): for rows in ALL_CSV_ROWS: td = TransitData() for row in rows: stop = td.stops.add(**row) self.assertListEqual(sorted(stop.get_csv_fields()), sorted(list(row.keys())))
def test_not_equal_operator(self): original_td = TransitData() original_stop = None for row in FULL_STOP_CSV_ROWS: original_stop = original_td.stops.add(**row) new_td = TransitData() rows = [dict(row) for row in FULL_STOP_CSV_ROWS] rows[-1]["stop_id"] = 10 edited_stop = None for row in rows: edited_stop = new_td.stops.add(**row) self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_name = "test name" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_lat = 0 self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_lon = 0 self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_code = "1" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_desc = "test desc" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.zone_id = 2 self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_url = "http://testurl.com/" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.location_type = 1 self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.parent_station = None self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.stop_timezone = "Asia/Hebron" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.wheelchair_boarding = False self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.attributes["test_attribute"] = "new test data" self.assertNotEqual(original_stop, edited_stop) new_td = TransitData() edited_stop = None for row in FULL_STOP_CSV_ROWS: edited_stop = new_td.stops.add(**row) edited_stop.attributes["test_attribute2"] = "new test data" self.assertNotEqual(original_stop, edited_stop)
def test_get_csv_fields(self): for row in ALL_CSV_ROWS: td = TransitData() agency = td.agencies.add(**row) self.assertListEqual(sorted(agency.get_csv_fields()), sorted(list(row.keys())))
def test_not_equal_operator(self): original_td = TransitData() original_agency = original_td.agencies.add(**FULL_AGENCY_CSV_ROW) new_td = TransitData() row = dict(FULL_AGENCY_CSV_ROW) row["agency_id"] = 10 edited_agency = new_td.agencies.add(**row) self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_name = "new name" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_url = "http://newurl.com/" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_timezone = "Asia/Hebron" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_lang = "EN" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_phone = "*1234" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_email = "*****@*****.**" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.agency_fare_url = "http://newurl/fare" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.attributes["test_attribute"] = "new test data" self.assertNotEqual(original_agency, edited_agency) new_td = TransitData() edited_agency = new_td.agencies.add(**FULL_AGENCY_CSV_ROW) edited_agency.attributes["test_attribute2"] = "new test data" self.assertNotEqual(original_agency, edited_agency)
def test_get_csv_line(self): for row in ALL_CSV_ROWS: td = TransitData() service = td.calendar.add(**row) self.assertDictEqual(service.to_csv_line(), row)