def create_test_moto(): new_moto = MotoModel.query.filter(MotoModel.matricula == matricula).first() # Si ya existe retornamos directamente if new_moto is not None: return new_moto # Si no existe la creamos new_moto = MotoModel(state="AVAILABLE", matricula=matricula, date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=23.4434, last_coordinate_longitude=23.4433, km_restantes=120.0, km_totales=500.0, date_last_check="18/10/2020", km_last_check=0.0) new_moto.save_to_db() new_moto = MotoModel.query.filter(MotoModel.matricula == matricula).first() if new_moto is None: # No se ha añadido a la base de datos!!!! # Si esto no funciona los tests no tienen sentido. assert False return new_moto
def test_ModifyMoto_updateFields(): """ GIVEN a MotoModel model WHEN a MotoModel is updated THEN check the fields is updated correctly """ new_moto = MotoModel(state="REPAIRING", matricula="1234-MMM", date_estreno="24/11/2020", model_generic="premium", last_coordinate_latitude=23.4434, last_coordinate_longitude=23.4433, km_restantes=120.0, km_totales=10.0, date_last_check="24/11/2020", km_last_check=0.0) MotoModel.set_moto(new_moto, "1234-AAA", 110.0, "AVAILABLE") assert new_moto.matricula == "1234-AAA" assert new_moto.km_restantes == 110.0 assert new_moto.state == "AVAILABLE" assert new_moto.km_last_check == 10.0 date_format = "%d/%m/%Y" today = datetime.now().strftime(date_format) assert isinstance(today, str) assert isinstance(new_moto.date_last_check, str) assert new_moto.date_last_check == today
def post(self): parser = reqparse.RequestParser() parser.add_argument('license_plate', type=str, required=True, help="This field cannot be left blank") parser.add_argument('model_generic', type=str, required=True, help="This field cannot be left blank") data = parser.parse_args() matricula = data["license_plate"].upper() model_generic = data["model_generic"] if not MotoModel.is_license_plate(matricula): return { "message": "ERROR: The format of the license plate is not valid." }, 400 if model_generic not in ("basic", "premium"): return { "message": "ERROR: model_generic should be either [basic] or [premium]." }, 400 m = MotoModel.query.filter( MotoModel.matricula == data["license_plate"]).first() if m is not None: return { "message": "There is already a motorbike with license plate [{}].".format( matricula) }, 409 else: try: date_format = "%d/%m/%Y" today = datetime.now().strftime(date_format) str_today = today # str(today.day) + str(today.month) + str(today.year) # Esto de aquí genera unas coordenadas en BCN con ruido gausiano. latt, long = MotoModel.get_random_coordinates() moto = MotoModel('AVAILABLE', matricula, str_today, data['model_generic'], latt, long, 50, 0, str_today, 0) moto.save_to_db() return {"message": "Moto added successfully"}, 200 except: return {"message": "Internal Error Post Moto"}, 500
def test_street_variable(): """ GIVEN a MotoModel model WHEN a new MotoModel is created THEN check the address field is defined correctly """ new_moto = MotoModel(state="ACTIVE", matricula="1234-MMM", date_estreno="24/11/2020", model_generic="premium", last_coordinate_latitude=23.4434, last_coordinate_longitude=23.4433, km_restantes=120.0, km_totales=0.0, date_last_check="24/11/2020", km_last_check=0.0) assert new_moto.address == "Al Kufrah, Libia"
def init_db(): db.drop_all() db.create_all() new_moto1 = MotoModel(state="AVAILABLE", matricula="1111-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.403193, last_coordinate_longitude=2.175004, km_restantes=34.0, km_totales=300.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto1) new_moto2 = MotoModel(state="AVAILABLE", matricula="2222-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.403719, last_coordinate_longitude=2.189128, km_restantes=3.0, km_totales=23.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto2) new_moto3 = MotoModel(state="AVAILABLE", matricula="3333-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=41.386399, last_coordinate_longitude=2.164143, km_restantes=120.0, km_totales=500.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto3) new_moto = MotoModel(state="AVAILABLE", matricula="4444-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=41.348788, last_coordinate_longitude=2.132925, km_restantes=45.0, km_totales=203.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto) new_moto = MotoModel(state="LOW_BATTERY_FUEL", matricula="5555-MMM", date_estreno="08/10/2020", model_generic="premium", last_coordinate_latitude=41.413273, last_coordinate_longitude=2.152931, km_restantes=2.0, km_totales=100.0, date_last_check="18/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto = MotoModel(state="LOW_BATTERY_FUEL", matricula="6666-MMM", date_estreno="08/10/2020", model_generic="premium", last_coordinate_latitude=41.427691, last_coordinate_longitude=2.166293, km_restantes=4.0, km_totales=100.0, date_last_check="18/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto = MotoModel(state="AVAILABLE", matricula="7777-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=41.387818, last_coordinate_longitude=2.169647, km_restantes=23.0, km_totales=203.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto) new_moto = MotoModel(state="AVAILABLE", matricula="8888-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.375960, last_coordinate_longitude=2.177455, km_restantes=35.0, km_totales=203.0, date_last_check="18/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto = MotoModel(state="AVAILABLE", matricula="5454-MMM", date_estreno="28/11/2020", model_generic="premium", last_coordinate_latitude=41.384223, last_coordinate_longitude=2.160337, km_restantes=35.0, km_totales=403.0, date_last_check="28/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto = MotoModel(state="AVAILABLE", matricula="4545-MMM", date_estreno="28/11/2020", model_generic="premium", last_coordinate_latitude=41.359768, last_coordinate_longitude=2.084035, km_restantes=35.0, km_totales=403.0, date_last_check="28/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto9 = MotoModel(state="AVAILABLE", matricula="9999-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.591158, last_coordinate_longitude=1.520865, km_restantes=34.0, km_totales=300.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto9) new_moto10 = MotoModel(state="AVAILABLE", matricula="1010-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.591158, last_coordinate_longitude=1.5209, km_restantes=999.0, km_totales=300.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto10) client1 = ClientModel(nombre="Juana", iban="2223462362665251w", dni_nie="11111111J", email="*****@*****.**", password="******") db.session.add(client1) client2 = ClientModel(nombre="Camila", iban="22462362665251w", dni_nie="14441111J", email="*****@*****.**", password="******") db.session.add(client2) client3 = ClientModel(nombre="Sofia", iban="2223332362665251w", dni_nie="11188881J", email="*****@*****.**", password="******") db.session.add(client3) client = ClientModel(nombre="Ramona", iban="225554362665251w", dni_nie="12341111J", email="*****@*****.**", password="******") db.session.add(client) articulo = ArticleModel( titulo="¡Motos más nuevas y potentes que nunca!", texto="Las nuevas motos de Mooving están batiendo todos los" "récord habidos y por haber. Tenemos más de 400 motos eléctricas" "con una autonomía de más de 100KM.", fecha_creacion="2020/10/29", visible=True) db.session.add(articulo) articulo = ArticleModel( titulo="¡Motos más rápidas !", texto= "Las nuevas motos de Mooving son más rápidas que las de la competencia." " Tenemos más de 400 motos eléctricas" " con una velocidad punta de más de 100KM/H .", fecha_creacion="2020/10/28", visible=True) db.session.add(articulo) new_mechanic = MechanicModel(name="Jose", subname="De carglass", dni="11111111J", password="******", date_registration="23/02/2020") db.session.add(new_mechanic) new_mechanic = MechanicModel(name="Pepe", subname="De marcota", dni="22222222J", password="******", date_registration="24/02/2020") db.session.add(new_mechanic) db.session.commit() print('Success in adding items to database')
# coding=utf-8 import math import app from models.moto_model import MotoModel from datetime import datetime # Test m1 = MotoModel(state="ACTIVE", matricula="3333-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=23., last_coordinate_longitude=23., km_restantes=120.0, km_totales=0.0, date_last_check="18/10/2020", km_last_check=0.0) m2 = MotoModel(state="ACTIVE", matricula="4444-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=23.1, last_coordinate_longitude=23.1, km_restantes=120.0, km_totales=0.0, date_last_check="18/10/2020", km_last_check=0.0)
def add_data(db=db): new_moto1 = MotoModel( state="AVAILABLE", matricula="1111-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.40181444604073, last_coordinate_longitude=2.1602937877348554, km_restantes=80.0, km_totales=300.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto1) new_moto2 = MotoModel( state="AVAILABLE", matricula="2222-MMM", date_estreno="28/10/2020", model_generic="basic", last_coordinate_latitude=41.40514485607213, last_coordinate_longitude=2.1587408287276393, km_restantes=80.0, km_totales=23.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto2) new_moto3 = MotoModel( state="AVAILABLE", matricula="3333-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=41.40396129395845, last_coordinate_longitude=2.1672429122257184, km_restantes=120.0, km_totales=500.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto3) new_moto = MotoModel( state="AVAILABLE", matricula="4444-MMM", date_estreno="28/10/2020", model_generic="premium", last_coordinate_latitude=41.403205972568855, last_coordinate_longitude=2.155472976562771, km_restantes=120.0, km_totales=203.0, date_last_check="18/10/2020", km_last_check=0.0) db.session.add(new_moto) new_moto = MotoModel( state="LOW_BATTERY_FUEL", matricula="5555-MMM", date_estreno="08/10/2020", model_generic="premium", last_coordinate_latitude=41.40510495456656, last_coordinate_longitude=2.166668308564227, km_restantes=30.0, km_totales=100.0, date_last_check="18/10/2020", km_last_check=100.0) db.session.add(new_moto) new_moto = MotoModel( state="LOW_BATTERY_FUEL", matricula="6666-MMM", date_estreno="08/10/2020", model_generic="premium", last_coordinate_latitude=41.40551322372631, last_coordinate_longitude=2.163830433113226 , km_restantes=30.0, km_totales=100.0, date_last_check="18/10/2020", km_last_check=100.0) db.session.add(new_moto) client1 = ClientModel( nombre="Juana", iban="2223462362665251w", dni_nie="11111111J", email="*****@*****.**", password="******" ) db.session.add(client1) client2 = ClientModel( nombre="Camila", iban="22462362665251w", dni_nie="14441111J", email="*****@*****.**", password="******" ) db.session.add(client2) client3 = ClientModel( nombre="Sofia", iban="2223332362665251w", dni_nie="11188881J", email="*****@*****.**", password="******" ) db.session.add(client3) client = ClientModel( nombre="Ramona", iban="225554362665251w", dni_nie="12341111J", email="*****@*****.**", password="******" ) db.session.add(client) articulo = ArticleModel( titulo="¡Motos más nuevas y potentes que nunca!", texto="Las nuevas motos de Mooving están batiendo todos los" "récord habidos y por haber. Tenemos más de 400 motos eléctricas" "con una autonomía de más de 100KM.", fecha_creacion="2020/10/29", visible=True) db.session.add(articulo) articulo = ArticleModel( titulo="¡Motos más rápidas !", texto="Las nuevas motos de Mooving son más rápidas que las de la competencia." " Tenemos más de 400 motos eléctricas" " con una velocidad punta de más de 100KM/H .", fecha_creacion="2020/10/28", visible=True) db.session.add(articulo) new_mechanic = MechanicModel( name="Jose", subname="De carglass", dni="11111111J", password="******", date_registration="23/02/2020") db.session.add(new_mechanic) new_mechanic = MechanicModel( name="Pepe", subname="De marcota", dni="22222222J", password="******", date_registration="24/02/2020") db.session.add(new_mechanic) db.session.commit() print('Success in adding items to database')