def test_profile_modify_correct(client): c = client c.get("/clients") # Cogemos un cliente random de la base de datos. client_old = ClientModel.query.filter(ClientModel.client_id == 1).first() # Nos inventamos datos new_email = "*****@*****.**" new_dni_nie = "000000000000" new_name = "Inventado" new_iban = "0000000000000000000000" # Nos aseguramos de que no exista ese email en la base de datos assert ClientModel.find_by_email(new_email) is None # Nos aseguramos de que no exista ese dni en la base de datos assert ClientModel.find_by_dni(new_dni_nie) is None # Hacemos el put con datos inventados path = '/profile/' + client_old.email params = { 'name': new_name, 'iban': new_iban, 'dni_nie': new_dni_nie, 'email': new_email } r = c.put(path, json=params) assert r.status_code == 200 # Antes de nada comprobamos si realmente se han modificado el email o el dni assert ClientModel.find_by_email(new_email) is not None assert ClientModel.find_by_dni(new_dni_nie) is not None # Ahora comprobaremos los otros datos new_client = ClientModel.find_by_email(new_email) assert new_client.nombre == new_name assert new_client.iban == new_iban assert new_client.dni_nie == new_dni_nie assert new_client.email == new_email
def put(self, email): parser = reqparse.RequestParser() parser.add_argument('name', type=str, required=False) parser.add_argument('iban', type=str, required=False) parser.add_argument('dni_nie', type=str, required=False) parser.add_argument('email', type=str, required=False) data = parser.parse_args() try: client = ClientModel.find_by_email(email) if client is not None: if data['name']: client.set_name(data['name']) if data['iban']: client.set_iban(data['iban']) if data['dni_nie']: if ClientModel.find_by_dni(data['dni_nie']) is None: client.set_dni_nie(data['dni_nie']) else: if ClientModel.find_by_dni(data['dni_nie']).client_id == client.client_id: client.set_dni_nie(data['dni_nie']) else: return {"message": "The new DNI/NIE is already in use"}, 406 if data['email']: if ClientModel.find_by_email(data['email']) is None: client.set_email(data['email']) else: if ClientModel.find_by_email(data['email']) == client: client.set_email(data['email']) else: return {"message": "The new email is already in use"}, 405 return {"message": "Client profile modified successfully"}, 200 else: return {"message": "Client with this email doesn't exist"}, 404 except: return {"message": "Error Modify client profile"}, 500