def test_link(self):
        # get all links
        rv, json = self.client.get('/trafficLink/')
        self.assertTrue(rv.status_code == 200)
        assert isinstance(json.pop('trafficLinkList'), list)


        #get a link by linkId
        rv, json = self.client.get('/trafficLink/4616337')
        self.assertTrue(rv.status_code == 200)
        self.assertTrue('borough' and
                        'encodedPolyLine' and
                        'encodedPolyLineLvls' and
                        'linkId' and
                        'linkName' and
                        'linkPoints' and
                        'owner' in json['Link'][0])

        #invalid id
        rv, json = self.client.get('/trafficLink/123456789')
        self.assertTrue(rv.status_code == 404)

        #no link data
        from common.models import Link
        Link.drop_collection()
        rv, json = self.client.get('/trafficLink/')
        self.assertTrue(rv.status_code == 404)
Exemplo n.º 2
0
	def get(self, id):

		req_fields = ['linkId','linkName', 'borough', 'owner', 'linkPoints', 'encodedPolyLine', 'encodedPolyLineLvls']
		link = Link.objects(linkId = str(id)).only(*req_fields)
		if len(link) == 0:
			abort(404)	
		return jsonify({'Link': link})
Exemplo n.º 3
0
	def get(self):	
		
		req_fields = ['linkId', 'linkName', 'borough', 'owner', 'linkPoints', 'encodedPolyLine', 'encodedPolyLineLvls']
		links = Link.objects().only(*req_fields)
		if len(links) == 0:
			abort(404)
		
		return jsonify({'trafficLinkList': links})
def insert_traffic_data():

    localtz = pytz.timezone("America/New_York")
    # Read data from the website
    try:
        response = requests.get(app.config["NYC_LINK_SPEED_URL"])
    except Exception as e:
        if not app.debug:
            import logger

            logger.logger_message("Retrieving data failed.")
        return 500

    # Split to lines
    trafficData = (response.text).split("\n")
    # skip first line (headers) and last line (empty); read lines
    # "Id"	"Speed"	"TravelTime"	"Status"	"DataAsOf"	"linkId"	"linkPoints"	"EncodedPolyLine"	"EncodedPolyLineLvls"	"Owner"	"Transcom_id"	"Borough"	"linkName"
    for line in csv.reader(trafficData[1:-1], delimiter="\t"):
        sensor = Sensor(
            sensorId=line[0],
            speed=line[1],
            travelTime=line[2],
            status=line[3],
            dataAsOf=localtz.localize(dt.strptime(line[4], "%m/%d/%Y %H:%M:%S")),
            linkId=line[5],
        )
        sensor.save()
        Link.objects(linkId=line[5]).upsert_one(
            linkPoints=line[6],
            encodedPolyLine=line[7],
            encodedPolyLineLvls=line[8],
            owner=line[9],
            borough=line[11],
            linkName=line[12],
        )

    return True
 def setUp(self):
     app.config['TESTING'] = True
     self.app = app
     Sensor.drop_collection()
     Link.drop_collection()