kopia lustrzana https://github.com/jprochazka/adsb-receiver
Added a couple flights tests.
rodzic
ebe3ae8a13
commit
182b689490
|
|
@ -14,7 +14,10 @@ def get_flight(flight):
|
|||
try:
|
||||
db=get_db()
|
||||
cursor=db.cursor()
|
||||
cursor.execute("SELECT * FROM flights WHERE flight = %s", (flight,))
|
||||
|
||||
cursor.execute("SELECT * FROM flights WHERE flight = ?", (flight,))
|
||||
#cursor.execute("SELECT * FROM flights WHERE flight = %s", (flight,))
|
||||
|
||||
columns=[x[0] for x in cursor.description]
|
||||
result=cursor.fetchall()
|
||||
for result in result:
|
||||
|
|
@ -40,7 +43,21 @@ def get_flight_positions(flight):
|
|||
try:
|
||||
db=get_db()
|
||||
cursor=db.cursor()
|
||||
cursor.execute("SELECT * FROM positions WHERE flight = %s ORDER BY time LIMIT %s, %s", (flight, offset, limit))
|
||||
|
||||
cursor.execute("SELECT COUNT(*) FROM flights WHERE flight = ?", (flight,))
|
||||
#cursor.execute("SELECT COUNT(*) FROM flight WHERE flight = %s", (flight,))
|
||||
|
||||
if cursor.fetchone()[0] == 0:
|
||||
return "Not Found", 404
|
||||
|
||||
cursor.execute("SELECT id FROM flights WHERE flight = ?", (flight,))
|
||||
#cursor.execute("SELECT id FROM flights WHERE flight = %s", (flight,))
|
||||
|
||||
flight_id = cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT * FROM positions WHERE flight = ? ORDER BY time LIMIT ?, ?", (flight_id, offset, limit))
|
||||
#cursor.execute("SELECT * FROM positions WHERE flight = %s ORDER BY time LIMIT %s, %s", (flight, offset, limit))
|
||||
|
||||
columns=[x[0] for x in cursor.description]
|
||||
result=cursor.fetchall()
|
||||
for result in result:
|
||||
|
|
@ -69,7 +86,10 @@ def get_flights():
|
|||
try:
|
||||
db=get_db()
|
||||
cursor=db.cursor()
|
||||
cursor.execute("SELECT * FROM flights ORDER BY last_seen DESC, flight LIMIT %s, %s", (offset, limit))
|
||||
|
||||
cursor.execute("SELECT * FROM flights ORDER BY last_seen DESC, flight LIMIT ?, ?", (offset, limit))
|
||||
#cursor.execute("SELECT * FROM flights ORDER BY last_seen DESC, flight LIMIT %s, %s", (offset, limit))
|
||||
|
||||
columns=[x[0] for x in cursor.description]
|
||||
result=cursor.fetchall()
|
||||
for result in result:
|
||||
|
|
|
|||
|
|
@ -6,24 +6,29 @@ VALUES
|
|||
('icao04', '2024-07-17 04:40:44', '2024-06-17 04:44:04'),
|
||||
('icao05', '2024-07-17 05:50:55', '2024-06-17 05:55:05');
|
||||
|
||||
INSERT INTO flights (`aircraft`, `flight`, `first_seen`, `last_seen`)
|
||||
VALUES
|
||||
(1, 'FLT0001', '2024-07-17 01:10:11', '2024-06-17 01:11:01'),
|
||||
(2, 'FLT0002', '2024-07-17 02:20:22', '2024-06-17 02:22:02'),
|
||||
(3, 'FLT0003', '2024-07-17 03:30:33', '2024-06-17 03:33:03'),
|
||||
(5, 'FLT0005', '2024-07-17 04:40:44', '2024-06-17 04:44:04');
|
||||
|
||||
INSERT INTO positions (`flight`, `aircraft`, `time`, `message`, `squawk`, `latitude`, `longitude`, `track`, `altitude`, `verticle_rate`, `speed`)
|
||||
VALUES
|
||||
(, 1, '2024-06-17 01:11:01', , , , , 5, , , )
|
||||
(, 1, '2024-06-17 01:11:46', , , , , 4, , , )
|
||||
(, 1, '2024-06-17 01:11:31', , , , , 3, , , )
|
||||
(, 1, '2024-06-17 01:11:16', , , , , 2, , , )
|
||||
(, 1, '2024-06-17 01:10:01', , , , , 1, , , )
|
||||
|
||||
(, 1, '2024-07-17 01:11:11', , , , , 5, , , )
|
||||
(, 1, '2024-07-17 01:10:56', , , , , 4, , , )
|
||||
(, 1, '2024-07-17 01:10:41', , , , , 3, , , )
|
||||
(, 1, '2024-07-17 01:10:26', , , , , 2, , , )
|
||||
(, 1, '2024-07-17 01:10:11', , , , , 1, , , )
|
||||
|
||||
(, 5, '2024-06-17 05:55:05', , , , , 4, , , )
|
||||
(, 5, '2024-07-17 05:50:20', , , , , 3, , , )
|
||||
(, 5, '2024-07-17 05:50:35', , , , , 2, , , )
|
||||
(, 5, '2024-07-17 05:50:55', , , , , 1, , , )
|
||||
(1, 1, '2024-06-17 01:11:01', 204, 6523, 42.649292, -84.960896, 98, 46975, 0, 477),
|
||||
(1, 1, '2024-06-17 01:11:46', 289, 6523, 42.646408, -84.934304, 98, 46975, 0, 477),
|
||||
(1, 1, '2024-06-17 01:11:31', 309, 6523, 42.637567, -84.8538, 98, 47000, 64, 476),
|
||||
(1, 1, '2024-06-17 01:11:16', 455, 6523, 42.631622, -84.799971, 99, 47000, 0, 475),
|
||||
(1, 1, '2024-06-17 01:10:01', 532, 6523, 42.625946, -84.748785, 99, 47000, 64, 474),
|
||||
(1, 1, '2024-07-17 01:11:11', 11696, 1621, 41.384474, -83.586981, 276, 41725, 0, 380),
|
||||
(1, 1, '2024-07-17 01:10:56', 11718, 1621, 41.38916, -83.650839, 276, 41725, 64, 380),
|
||||
(1, 1, '2024-07-17 01:10:41', 11771, 1621, 41.392993, -83.701065, 275, 41700, -192, 378),
|
||||
(1, 1, '2024-07-17 01:10:26', 11787, 1621, 41.394017, -83.71582, 275, 41725, -192, 378),
|
||||
(1, 1, '2024-07-17 01:10:11', 11790, 1621, 41.394017, -83.71582, 275, 41725, -192, 378),
|
||||
(4, 5, '2024-06-17 05:55:05', 323, 1317, 41.774163, -83.827344, 91, 36475, 832, 486),
|
||||
(4, 5, '2024-07-17 05:50:20', 340, 1317, 41.773837, -83.788828, 91, 36625, 960, 487),
|
||||
(4, 5, '2024-07-17 05:50:35', 417, 1317, 41.773464, -83.749737, 91, 36825, 768, 487),
|
||||
(4, 5, '2024-07-17 05:50:55', 504, 1317, 41.772903, -83.690727, 91, 37225, 1216, 484);
|
||||
|
||||
INSERT INTO users (`name`, `email`, `login`, `password`, `administrator`)
|
||||
VALUES
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
def test_get_aircraft_200(client):
|
||||
response = client.get('/api/aircraft/icao01')
|
||||
assert response.status_code == 200
|
||||
assert response.json['aircraft']['id'] == 1
|
||||
assert response.json['aircraft']['icao'] == "icao01"
|
||||
assert response.json['aircraft']['first_seen'] == "2024-07-17 01:10:11"
|
||||
assert response.json['aircraft']['last_seen'] == "2024-06-17 01:11:01"
|
||||
assert response.json['id'] == 1
|
||||
assert response.json['icao'] == "icao01"
|
||||
assert response.json['first_seen'] == "2024-07-17 01:10:11"
|
||||
assert response.json['last_seen'] == "2024-06-17 01:11:01"
|
||||
|
||||
def test_get_aircraft_404(client):
|
||||
response = client.get('/api/aircraft/icao00')
|
||||
|
|
@ -14,9 +14,60 @@ def test_get_aircraft_404(client):
|
|||
|
||||
# GET /api/aircraft/{icao}/positions
|
||||
|
||||
def test_get_aircraft_200(client):
|
||||
response = client.get('/api/aircraft/icao00/positions')
|
||||
def test_get_aircraft_positions_200(client):
|
||||
response = client.get('/api/aircraft/icao05/positions')
|
||||
assert response.status_code == 200
|
||||
assert response.json['offset'] == 0
|
||||
assert response.json['limit'] == 500
|
||||
assert response.json['count'] == 4
|
||||
assert response.json['positions'][0]['id'] == 11
|
||||
assert response.json['positions'][0]['flight'] == 4
|
||||
assert response.json['positions'][0]['aircraft'] == 5
|
||||
assert response.json['positions'][0]['time'] == '2024-06-17 05:55:05'
|
||||
assert response.json['positions'][0]['message'] == 323
|
||||
assert response.json['positions'][0]['squawk'] == 1317
|
||||
assert response.json['positions'][0]['latitude'] == 41.774163
|
||||
assert response.json['positions'][0]['longitude'] == -83.827344
|
||||
assert response.json['positions'][0]['track'] == 91
|
||||
assert response.json['positions'][0]['altitude'] == 36475
|
||||
assert response.json['positions'][0]['verticle_rate'] == 832
|
||||
assert response.json['positions'][0]['speed'] == 486
|
||||
assert response.json['positions'][1]['id'] == 12
|
||||
assert response.json['positions'][1]['flight'] == 4
|
||||
assert response.json['positions'][1]['aircraft'] == 5
|
||||
assert response.json['positions'][1]['time'] == '2024-07-17 05:50:20'
|
||||
assert response.json['positions'][1]['message'] == 340
|
||||
assert response.json['positions'][1]['squawk'] == 1317
|
||||
assert response.json['positions'][1]['latitude'] == 41.773837
|
||||
assert response.json['positions'][1]['longitude'] == -83.788828
|
||||
assert response.json['positions'][1]['track'] == 91
|
||||
assert response.json['positions'][1]['altitude'] == 36625
|
||||
assert response.json['positions'][1]['verticle_rate'] == 960
|
||||
assert response.json['positions'][1]['speed'] == 487
|
||||
assert response.json['positions'][2]['id'] == 13
|
||||
assert response.json['positions'][2]['flight'] == 4
|
||||
assert response.json['positions'][2]['aircraft'] == 5
|
||||
assert response.json['positions'][2]['time'] == '2024-07-17 05:50:35'
|
||||
assert response.json['positions'][2]['message'] == 417
|
||||
assert response.json['positions'][2]['squawk'] == 1317
|
||||
assert response.json['positions'][2]['latitude'] == 41.773464
|
||||
assert response.json['positions'][2]['longitude'] == -83.749737
|
||||
assert response.json['positions'][2]['track'] == 91
|
||||
assert response.json['positions'][2]['altitude'] == 36825
|
||||
assert response.json['positions'][2]['verticle_rate'] == 768
|
||||
assert response.json['positions'][2]['speed'] == 487
|
||||
assert response.json['positions'][3]['id'] == 14
|
||||
assert response.json['positions'][3]['flight'] == 4
|
||||
assert response.json['positions'][3]['aircraft'] == 5
|
||||
assert response.json['positions'][3]['time'] == '2024-07-17 05:50:55'
|
||||
assert response.json['positions'][3]['message'] == 504
|
||||
assert response.json['positions'][3]['squawk'] == 1317
|
||||
assert response.json['positions'][3]['latitude'] == 41.772903
|
||||
assert response.json['positions'][3]['longitude'] == -83.690727
|
||||
assert response.json['positions'][3]['track'] == 91
|
||||
assert response.json['positions'][3]['altitude'] == 37225
|
||||
assert response.json['positions'][3]['verticle_rate'] == 1216
|
||||
assert response.json['positions'][3]['speed'] == 484
|
||||
|
||||
def test_get_aircraft_404(client):
|
||||
response = client.get('/api/aircraft/icao00/positions')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
# GET /api/flight/{flight}
|
||||
|
||||
def test_get_flight_200(client):
|
||||
response = client.get('/api/flight/FLT0001')
|
||||
assert response.status_code == 200
|
||||
assert response.json['id'] == 1
|
||||
assert response.json['aircraft'] == 1
|
||||
assert response.json['first_seen'] == "2024-07-17 01:10:11"
|
||||
assert response.json['last_seen'] == "2024-06-17 01:11:01"
|
||||
|
||||
def test_get_flight_404(client):
|
||||
response = client.get('/api/flight/FLT0000')
|
||||
assert response.status_code == 404
|
||||
|
||||
# GET /api/flight/{flight}/positions
|
||||
|
||||
def test_get_flight_positions_200(client):
|
||||
response = client.get('/api/flight/FLT0005/positions')
|
||||
assert response.status_code == 200
|
||||
assert response.json['offset'] == 0
|
||||
assert response.json['limit'] == 500
|
||||
assert response.json['count'] == 4
|
||||
assert response.json['positions'][0]['id'] == 11
|
||||
assert response.json['positions'][0]['flight'] == 4
|
||||
assert response.json['positions'][0]['aircraft'] == 5
|
||||
assert response.json['positions'][0]['time'] == '2024-06-17 05:55:05'
|
||||
assert response.json['positions'][0]['message'] == 323
|
||||
assert response.json['positions'][0]['squawk'] == 1317
|
||||
assert response.json['positions'][0]['latitude'] == 41.774163
|
||||
assert response.json['positions'][0]['longitude'] == -83.827344
|
||||
assert response.json['positions'][0]['track'] == 91
|
||||
assert response.json['positions'][0]['altitude'] == 36475
|
||||
assert response.json['positions'][0]['verticle_rate'] == 832
|
||||
assert response.json['positions'][0]['speed'] == 486
|
||||
assert response.json['positions'][1]['id'] == 12
|
||||
assert response.json['positions'][1]['flight'] == 4
|
||||
assert response.json['positions'][1]['aircraft'] == 5
|
||||
assert response.json['positions'][1]['time'] == '2024-07-17 05:50:20'
|
||||
assert response.json['positions'][1]['message'] == 340
|
||||
assert response.json['positions'][1]['squawk'] == 1317
|
||||
assert response.json['positions'][1]['latitude'] == 41.773837
|
||||
assert response.json['positions'][1]['longitude'] == -83.788828
|
||||
assert response.json['positions'][1]['track'] == 91
|
||||
assert response.json['positions'][1]['altitude'] == 36625
|
||||
assert response.json['positions'][1]['verticle_rate'] == 960
|
||||
assert response.json['positions'][1]['speed'] == 487
|
||||
assert response.json['positions'][2]['id'] == 13
|
||||
assert response.json['positions'][2]['flight'] == 4
|
||||
assert response.json['positions'][2]['aircraft'] == 5
|
||||
assert response.json['positions'][2]['time'] == '2024-07-17 05:50:35'
|
||||
assert response.json['positions'][2]['message'] == 417
|
||||
assert response.json['positions'][2]['squawk'] == 1317
|
||||
assert response.json['positions'][2]['latitude'] == 41.773464
|
||||
assert response.json['positions'][2]['longitude'] == -83.749737
|
||||
assert response.json['positions'][2]['track'] == 91
|
||||
assert response.json['positions'][2]['altitude'] == 36825
|
||||
assert response.json['positions'][2]['verticle_rate'] == 768
|
||||
assert response.json['positions'][2]['speed'] == 487
|
||||
assert response.json['positions'][3]['id'] == 14
|
||||
assert response.json['positions'][3]['flight'] == 4
|
||||
assert response.json['positions'][3]['aircraft'] == 5
|
||||
assert response.json['positions'][3]['time'] == '2024-07-17 05:50:55'
|
||||
assert response.json['positions'][3]['message'] == 504
|
||||
assert response.json['positions'][3]['squawk'] == 1317
|
||||
assert response.json['positions'][3]['latitude'] == 41.772903
|
||||
assert response.json['positions'][3]['longitude'] == -83.690727
|
||||
assert response.json['positions'][3]['track'] == 91
|
||||
assert response.json['positions'][3]['altitude'] == 37225
|
||||
assert response.json['positions'][3]['verticle_rate'] == 1216
|
||||
assert response.json['positions'][3]['speed'] == 484
|
||||
Ładowanie…
Reference in New Issue