Example #1
0
 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()})))
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
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
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
    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))
Example #10
0
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
Example #11
0
    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")
Example #12
0
    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)
Example #13
0
    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)
Example #14
0
    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)
Example #15
0
 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)
Example #16
0
 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()))
Example #17
0
 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)
Example #18
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)
Example #19
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
Example #20
0
 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)
Example #21
0
    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)
Example #22
0
    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())
Example #23
0
 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())))
Example #24
0
    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)
Example #25
0
 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())))
Example #26
0
    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)
Example #27
0
 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)