from flask import json from app.extensions import db from app.models.vehicle import Vehicle from test import client def test_list_vehicles_empty_db_empty_list(client): rv = client.get('/vehicles') assert len(json.loads(rv.data)) == 0 def test_list_vehicles_with_data(client): db.session.add(Vehicle(**{ "id": 1, "license_plate": "NY0001", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, })) db.session.commit() rv = client.get('/vehicles') assert len(json.loads(rv.data)) == 1 def test_get_single_vehicle(client): db.session.add(Vehicle(**{ "id": 1, "license_plate": "NY0002", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, })) db.session.add(Vehicle(**{ "id": 2, "license_plate": "NY0003", "battery_level": 95, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, })) db.session.commit() rv = client.get('/vehicles') assert len(json.loads(rv.data)) == 2 rv = client.get('/vehicles/1') data = json.loads(rv.data) assert data['id'] == 1 assert data['license_plate'] == 'NY0002' def test_create_vehicles(client): client.post('/vehicles', data={ "license_plate": "NY0003", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, }) rv = client.get('/vehicles/1') data = json.loads(rv.data) assert data['id'] == 1 assert data['license_plate'] == 'NY0003' client.post('/vehicles', data={ "license_plate": "NY0004", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, }) rv = client.get('/vehicles/2') data = json.loads(rv.data) assert data['id'] == 2 assert data['license_plate'] == 'NY0004' def test_update_vehicle(client): client.post('/vehicles', data={ "license_plate": "NY0006", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, }) rv = client.get('/vehicles/1') data = json.loads(rv.data) assert data['id'] == 1 assert data['license_plate'] == 'NY0006' rv = client.post('/vehicles/1', data={ "battery_level": 85, }) data = json.loads(rv.data) assert data['id'] == 1 assert data['battery_level'] == 85 rv = client.get('/vehicles/1') data = json.loads(rv.data) assert data['battery_level'] == 85 def test_delete_vehicle(client): client.post('/vehicles', data={ "license_plate": "NY0007", "battery_level": 90, "in_use": True, "model": "Niu", "location_lat": 40.680245, "location_long": -73.996955, }) rv = client.get('/vehicles/1') data = json.loads(rv.data) assert data['id'] == 1 assert data['license_plate'] == 'NY0007' rv = client.delete('/vehicles/1') data = json.loads(rv.data) assert data == 1 rv = client.get('/vehicles') assert len(json.loads(rv.data)) == 0